Django URL 没有看到 link 及其 POST 请求

Django URL does not see the link and its POST request

我做了一个项目,但是在这个项目中你需要从 VK 社交网络获得一个特殊的令牌。我使令牌与 link 一起传递。她看起来像这样:

http://127.0.0.1:8000/vk/auth#access_token=7138dcd74f5da5e557943b955bbfbd9a62811da7874067e5fa0edef1ca8680216755be16&expires_in=86400&user_id=397697636

但问题是 django 看不到这个 link。我试图在 post 请求中查看它,获取请求,但那里的一切都是空的。我试着让它不是作为请求而是作为 link 出现的,它是这样的:

http://127.0.0.1:8000/vk/auth #access_token=7138dcd74f5da5e557943b955bbfbd9a62811da7874067e5fa0edef1ca8680216755be16&expires_in=86400&user_id=397697636

但是django不想读取space。谁能帮忙

我认为 ? 之后的查询字符串(获取参数)和片段(# 之后的文本)

之间存在混淆

# 后面的内容不会发送到服务器(因此不会被 Django 接收),它仅对 Web 浏览器和在浏览器上执行的 javascript 有用,可以用它来更新屏幕的一部分。将其用作单页 Web 应用程序的虚拟网址/书签。 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?