2013-07-08 56 views
1

我有一个AJAX请求,POST s从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('/') 
+3

这是ajax请求吗? – karthikr

+0

ajax请求发布到加载此视图的url – dielawn1

+0

(并且只是为了确认,是'redirect'' django.shortcuts.redirect'?) –

回答

3

当你做一个AJAX请求(即一个JavaScript XMLHTTPRequest),你的JavaScript代码是用于处理由服务器返回的响应承担全部责任。

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

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

+0

所以我明白你在说什么,但有疑问。如果我在注册时发出AJAX POST请求,并且在注册完成后我想重定向,即使我使用javascript处理重定向,该人是否会登录 – barrigaj

+1

@barrigaj:假设您使用cookie跟踪其登录,是的。 –