我想知道如何让我的请求在我的视图中使用ajax,而我想将用户重定向到其他页面。我的意思是,例如,当用户成功发送他/她的电子邮件并且我想将他/她重定向到其他页面时。如何使此请求与ajax一起使用?
我在views.py中有这个功能:
def compose(request, recipient=None, success_url=None, recipient_filter=None):
if request.is_ajax():
if request.method == "POST":
sender = request.user
form = compose_form(request.POST, recipient_filter=recipient_filter)
if form.is_valid():
// do some processing
if success_url is None:
success_url = reverse('messages_inbox')
if request.GET.has_key('next'):
success_url = request.GET['next']
return HttpResponseRedirect(success_url)
else: //rest of function
然后我签入,例如'messages_inbox',用ajax传递的请求。那是什么方式?
答案 0 :(得分:1)
在ajax请求的情况下,视图不应该重定向。而是让视图将success_url
返回到ajax调用,然后使用成功回调来重定向用户。
jquery的示例
$.ajax(url, data, function (data, response, xhr){
...
var url = success_url; //Get success url from your data which is a json response object
$(location).attr('href',url);
});
您也可以在没有jquery的情况下进行重定向,请参阅 How to redirect to another webpage in JavaScript/jQuery?