我做了一个项目,但是在其中,您需要从VK社交网络中获取特殊令牌。我使令牌与链接一起传递。她看起来像这样:
http://127.0.0.1:8000/vk/auth#access_token=7138dcd74f5da5e557943b955bbfbd9a62811da7874067e5fa0edef1ca8680216755be16&expires_in=86400&user_id=397697636
但是问题是django无法看到此链接。我试图在发布请求,获取请求中查看它,但是那里的所有内容都是空的。我试图使它不是作为请求而是作为链接出现,就像这样:
http://127.0.0.1:8000/vk/auth #access_token=7138dcd74f5da5e557943b955bbfbd9a62811da7874067e5fa0edef1ca8680216755be16&expires_in=86400&user_id=397697636
但是django不想读取空格。谁可以帮助
[我认为在?
之后的查询字符串(获取参数)和一个片段(在#
之后的文本之间有混淆)
#
之后的内容不会发送到服务器(因此也不会被Django接收),它仅对Web浏览器和在浏览器上执行的javascript有用,后者可以使用它来更新部分内容。屏幕。将其用作一页Web应用程序的虚拟url /书签。javascript当然也可以使用该数据触发AJAX请求,但这取决于javascript
但是如果您写http://127.0.0.1:8000/vk/auth?access_token=7138dcd74f5da5e557943b955bbfbd9a62811da7874067e5fa0edef1ca8680216755be16&expires_in=86400&user_id=397697636
(用#
替换?
)
然后您可以在django视图中通过以下方式接收信息:>
[request.GET["access_token"]
,request.GET["expires_in"]
和request.GET["user_id"]
如果确实是#
,则您的JavaScript应该解析#
之后的内容,并向服务器发出相应的AJAX请求,以发送/验证令牌。
关于片段的另一个问题,请参考Is the URL fragment identifier sent to the server?