instagram api的认证过程返回作为参数附加到重定向URL的访问令牌,例如, redirect.com/#access_token=xxx
我目前正致力于获取访问令牌,将其保存在会话中,然后重定向到其他网址。但是,在重定向后,我只是得到了http://example.com/your-name/search/#access_token=xxx'并且参数仍然存在。我尝试过使用
GET = request.GET.copy()
GET.pop('#access_token')
但是我得到了一个' KeyError'虽然关键' access_token'显然在那里。
见下面我的urls.py
from django.conf.urls import url
From . import views
urlpatterns = [
url(r'^search/', views.get_name, name='get_name'),
url(r'^', views.index, name='index'),
]
和以下view.py
def index(request):
token = request.session.get('token')
if not token:
token=request.GET.get('#access_token')
request.session['token'] = token
return HttpResponseRedirect(redirect_to='http://example.com/your-name/search/')
答案 0 :(得分:1)
如果你的网址末尾有“#something”(称为“片段”),例如“http://myserver/#something”并且您将点击这样的链接,片段部分将不会被发送到服务器,因此您无法阅读它。
中描述了此行为片段标识符在信息检索中具有特殊作用 系统作为客户端间接引用的主要形式, 允许作者专门识别现有的方面 资源只由资源所有者间接提供。如 这样,片段标识符不用于特定于方案 处理URI;相反,片段标识符是分开的 从取消引用之前的其余URI开始,从而得到 识别片段本身内的信息被解除引用 完全由用户代理完成,无论URI方案如何。
因此,片段无法用于服务器处理或重定向。