重定向到root无法正常工作

时间:2013-07-08 14:58:04

标签: django django-views

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

1 个答案:

答案 0 :(得分:3)

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

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

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