我正在我的网站上实施谷歌登录
问题是当谷歌将我重定向回我的网站时(确认后)我无法从查询字符串中获取访问令牌。
这是URL:
http://localhost/mysite/west/Default.aspx#state=/profile&access_token=ya29.qQDrtcVtgOEbS86Bg10puFG3dksJz74BlrEGulHldlJW2o5qQ6g7ilF17zQsm8iMLG0C82PQyp2Z-g&token_type=Bearer&expires_in=3600
我怀疑这个#state=/profile
会产生一些问题,但无法解决问题
我错过了什么吗?
答案 0 :(得分:1)
您可以使用
document.URL获取网址。
然后按#state = / profile&
拆分网址然后数组的第二部分由&。
分割然后每个部分由first =
分割可能有更优雅的解决方案,但这应该有效。
答案 1 :(得分:1)
如果网址是这样的,请注意Default.aspx
后面有#,它不是?,那么就没有直接获取获取查询字符串的方法(它们被称为 URL片段而非查询字符串),它们应在客户端进行解析,而服务器端无法访问URL Fragments
。< / p>
http://localhost/mysite/west/Default.aspx#state=/profile&access_token=ya29.qQDrtcVtgOEbS86Bg10puFG3dksJz74BlrEGulHldlJW2o5qQ6g7ilF17zQsm8iMLG0C82PQyp2Z-g&token_type=Bearer&expires_in=3600
链接在网页上包含#,表示锚点,位置。浏览器向服务器发送GET请求,该请求仅包含整个页面的地址,没有锚点,片段或其他内容。当服务器返回页面时,浏览器知道它的位置,以便锚点的位置可见。在客户端或Javascript中,它可以访问锚点。