2013-06-26 20 views
3

我有一个Ajax调用在调用返回后重定向发生(成功处理程序中):如果我做的调用返回之前重定向在Ajax调用返回原因问题之前将重定向?

$.ajax({ 
     type: "POST", 
     url: "/LoadSomeData", 
     dataType: "json", 
     success: function (response) { 
      location.href = "http://mysite.com";     
     } 
    }); 

,将Ajax调用被取消?例如:

$.ajax({ 
      type: "POST", 
      url: "/LoadSomeData", 
      dataType: "json", 
      success: function (response) { 
       location.href = "http://mysite.com";     
      } 
     }); 
location.href = "http://mysite.com";  

我有一个情况我真的不关心等到我的所有数据被加载,我想立即重定向。问题是重定向(可能在加载完成之前)会中断加载过程?

谢谢...

+0

是的,该请求将被取消,所以这一切归结为你如何处理服务器端取消的请求。如果你从不关心响应,你可以尝试以某种方式实现它,以便服务器在后台异步处理请求时直接响应。 – mekwall

回答

1

如果您重定向之外AJAX回调,回调将被破坏,你会立即重定向。这应该不会影响重定向地址的加载过程。

+0

谢谢。我担心加载过程会受到影响。我真的不在乎我的回调被取消(在这种情况下)。 – Prabhu

1

浏览器是没有义务等待Ajax请求来完成,而他们没有。

2

没有验证过我会认为ajax调用会被取消。你可以尝试ajax调用一个包含<?php sleep(10); ?>或类似的PHP脚本,看看重定向是立即发生还是需要10秒。

希望帮助;)