中止所有Ajax调用 - jqXHR

时间:2012-07-23 08:47:53

标签: jquery ajax break jqxhr

基本上我使用jqXHR和asmx。如果可能,我想这样做;

在每个页面中我总是使用6-7 ajax调用同步或异步取决于它是哪种方法。但当他们中的一个得到错误时,我想打破那个ajax调用,并在所有的ajax调用之后。

谢谢!

2 个答案:

答案 0 :(得分:7)

使用数组来存储每个ajax调用返回的对象,并遍历该数组以中止它们:

var XHR = []
........//later
var myajax = $.ajax({
    type: 'GET',
    url: url
}).done(function() {
    //do something
}).fail(function() {
   abortAll();
});
XHR.push(myajax);

function abortAll() {
   XHR.each(function(i,e) {
      e.abort();
   });
}

答案 1 :(得分:3)

每次创建ajax请求时,它都会返回一个对象,您可以使用它来中止请求:

var request = $.ajax({
    type: 'POST',
    url: url,
    success: function(data){}
});

然后使用请求中止呼叫:

request.abort();