【发布时间】:2023-03-23 06:10:01
【问题描述】:
如何获取网址中“#”号后的值?
我正在使用 Facebook 手动构建登录流程,它会将我重定向到如下所示的网址:
http://example.com/redirect#access_token=1234567890&expires_in=12345
我在 UI Router 中的路由如下所示:
.state('redirect', {
url : '/redirect?token',
templateUrl : '/html/redirect.html'
})
现在我可以调用$location.hash() 并获取一个字符串来解析为值。但是这种方法感觉很hacky。我错过了什么吗?有没有更好的方法从这个 URL 中获取哈希参数?
编辑: 需要明确的是,Facebook 正在将“#”添加到网址中。我不知道他们为什么不只是使用“?”因为获取查询参数很简单。
【问题讨论】:
-
试试 $location.search()。
-
这在“#”之后似乎不起作用,就像在“?”之后起作用一样
-
请看这个SO question的答案。他正在使用
resolve将位置#更改为?。那应该可以。 -
@AWolf 谢谢!我认为米洛斯在下面提出了这个建议,我可能会接受它作为正确答案
标签: angularjs facebook-graph-api angular-ui-router