Angular2获取url查询参数
我正在为我的Angular2网络应用程序设置Facebook注册。
一旦应用程序通过Facebook接受(在重定向到Facebook授权页面后),它将重定向到我的webapp,其令牌和代码为url params: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE 但是一旦页面加载,params就被删除了。网址变为: http://localhost:55976/ 如何在删除参数(access_token和代码)之前将其提取出来? { path: 'login',component: LoginComponent },{ path: 'login/:access_token/:code', 编辑: 以下是我在login.component中重定向到facebook的方法: <a class="btn btn-social btn-facebook socialaccount_provider facebook" title="Facebook" href="#" (click)="login_facebook()"> <span class="fa fa-facebook"></span> <span style="padding-left:25px">Sign in with Facebook</span> </a> 打字稿: login_facebook() { let url = 'https://www.facebook.com/dialog/oauth?'+ 'client_id=my_client_id' + '&redirect_uri=' + encodeURIComponent('http://localhost:55976/#/login/') + '&response_type=code%20token'; console.log(url); window.location.href = url; } facebook api重定向到http://localhost:55976/#/login/,这是我尝试获取access_token和代码参数的地方。 编辑2: 如果我删除重定向网址中的锐利,Facebook会将我重定向到好的网址,但没有锐利,角度无法解析网址。 在删除’#’之前: redirect_uri: http://localhost:55976/#/login/ facebook return: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE 删除’#’后: redirect_uri: http://localhost:55976/login/ facebook return: http://localhost:55976/login/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE 这意味着问题来自尖锐的问题。但没有尖锐,角度返回HTTP错误404.0 – 未找到。
您正在寻找ActivatedRoute的
query parameters。
要接收它们,您可以将它们放入组件的OnInit函数中,如下所示: private accesstoken; private code; constructor(private route: ActivatedRoute) { } ngOnInit() { // Capture the access token and code this.route .queryParams .subscribe(params => { this.accesstoken = params['#access_token']; this.code = params['code']; }); // do something with this.code and this.accesstoken } 我在上面的链接中有更多示例。您可能遇到角度问题,因为路由器还识别片段,这些片段以#开头…如果angular将片段识别为片段,那么您只需订阅ActivatedRoute中可观察到的片段并按此方式执行。 我不确定你是否被重定向。如果你是,那么可以考虑使用preserveQueryParams导航选项,就像这样。 this.router.navigate([redirect],{preserveQueryParams: true}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |