开发者问题收集

中止 ajax 调用 javascript

2012-10-17
900

我使用以下来自 Stackoverflow 答案的代码来中止 JavaScript/jQuery 中的 AJAX 调用。

$.xhrPool.abortAll = function () {
  // alert('aborting.... outside');

  $(this).each(function (idx, jqXHR) {
    //jqXHR.abort();

    if (jqXHR && jqXHR.readyState != 4) {
        alert('aborting.... outside');
        jqXHR.abort();
    }
  });
  $.xhrPool.length = 0

  clearTimeout(timeoutOfCall);
  timeoutOfCall = null;
};

但是,当我像这样调用此函数时:

$.xhrPool.abortAll();

它在 IE 9 中生成“未知属性”错误,并且在 Chrome 中也不起作用。 它仅在 FF 中有效。

1个回答

如果您想要停止特定的 ajax 调用并且您的 jquery 是 1.5.1 或最新版本,您可以使用 jqXHR 对象的“abort”方法。

var jqxhr = $.ajax(your ajax call);
jqxhr.abort();
Vasily Komarov
2012-10-17