1

我有一个 AJAX 请求,该请求POST来自views.py.

视图执行并打印“重定向”,但实际上并没有将用户重定向到当前视图之外。为什么?

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('/')
4

1 回答 1

3

当您发出 AJAX 请求(即 JavaScript XMLHTTPRequest)时,您的 JavaScript 代码完全负责处理服务器返回的响应。

如果服务器对您的 AJAX 请求返回重定向响应,浏览器将不会加载新 URL,或者确实自行采取任何操作。

处理来自 AJAX 请求的响应的处理程序函数可以查看响应的状态代码,window.location如果响应是重定向,则设置为提供的 URL。如果您发布您的 AJAX 代码,我们可以就此提供建议。

于 2013-07-08T15:03:58.683 回答