Django-重定向后无法从URL中删除参数
instagram api的身份验证过程返回作为重定向url参数附加的访问令牌,例如redirect.com/#access_token=xxx 我目前正在获取访问令牌,将其保存在会话中,然后重定向到其他url。但是在重定向之后,我只得到了“”,参数仍然存在。我试过使用Django-重定向后无法从URL中删除参数,django,redirect,instagram-api,Django,Redirect,Instagram Api,instagram api的身份验证过程返回作为重定向url参数附加的访问令牌,例如redirect.com/#access_token=xxx 我目前正在获取访问令牌,将其保存在会话中,然后重定向到其他url。但是在重定向之后,我只得到了“”,参数仍然存在。我试过使用 GET = request.GET.copy() GET.pop('#access_token') 但是我得到了一个“KeyError”,尽管密钥“access_token”显然在那里 请参见下面的my URL.py from
GET = request.GET.copy()
GET.pop('#access_token')
但是我得到了一个“KeyError”,尽管密钥“access_token”显然在那里
请参见下面的my URL.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/')
如果您的url末尾带有“#something”(称为“fragment”),例如“”,并且您将单击这样的链接,那么该片段部分将不会发送到服务器,因此您无法读取它
此行为如中所述:
片段标识符在信息检索中具有特殊的作用
系统作为客户端间接引用的主要形式,
允许作者具体确定现有文档的各个方面
仅由资源所有者间接提供的资源。作为
这样,片段标识符就不会在特定于方案的代码中使用
URI的处理;相反,片段标识符是分开的
在取消引用之前,从URI的其余部分
片段本身中的标识信息被取消引用
仅由用户代理执行,而不考虑URI方案
因此,片段不能用于服务器处理或重定向。否,Instagram API不这样做。这样做是没有意义的,因为片段(在#之后的位)没有被发送到服务器。您无法在服务器端读取片段。请尝试:
request.get.get('access_token')
而不使用