我有POST
个来自views.py
的以下视图的网址的AJAX请求。
视图执行并打印“重定向”,但实际上并未将用户重定向到当前视图。为什么呢?
def confirm_user(request):
response_json = {"status": "fail"}
if request.POST:
join_id = request.POST.get('join_id', "")
try:
u = UserProfile.objects.filter(join_id=join_id)[0].user
email = u.username
confirmed = u.userprofile.confirmed
response_json = {
"status": "success",
"confirmed": confirmed,
"email": email }
return HttpResponse(json.dumps(response_json),
mimetype="application/json")
except:
print "redirect"
return redirect('/')
else:
return redirect('/')
答案 0 :(得分:3)
当您发出AJAX请求(即JavaScript XMLHTTPRequest
)时,您的JavaScript代码完全负责处理服务器返回的响应。
如果服务器返回对您的AJAX请求的重定向响应,或者确实自行采取任何操作,浏览器将不会加载新的URL。
处理来自AJAX请求的响应的处理程序函数可以查看响应的状态代码,如果响应是重定向,则将window.location
设置为提供的URL。如果您发布了AJAX代码,我们可以就此提出建议。