【问题标题】:How can I abort an AJAX call? [duplicate]如何中止 AJAX 调用? [复制]
【发布时间】:2013-05-26 02:19:00
【问题描述】:

我计划在我的网站上实现一系列 jQuery AJAX 调用,并希望开发一个函数来中止 AJAX 调用。我怎样才能做到这一点?我已经阅读了this link,但它对我不起作用。

【问题讨论】:

  • 它是一个常规的请求响应。你不能在中间停下来(优雅地)
  • 向我们展示您的代码。您如何使用该帖子中的代码?
  • 您的意思是根据另一个 ajax 调用的响应停止一个 ajax 调用?

标签: javascript jquery ajax


【解决方案1】:

您需要将您的 ajax 请求分配给变量,

var xhr = $.ajax({
***
});

然后拨打abort()

xhr.abort();

【讨论】:

    【解决方案2】:

    单次使用 AJAX 很简单。 XMLHttpRequest 有一个 abort 方法,用于取消请求。

    // creating our request
    xhr = $.ajax({
    url: 'ajax/progress.ftl',
    success: function(data) {
    //do something
    }
    });
    
    // aborting the request
    xhr.abort();
    

    xhr 对象还包含一个 readystate,其中包含请求的状态(UNSENT - 0,OPENED - 1,HEADERS_RECEIVED - 2,LOADING - 3 和 DONE - 4)。所以我们可以用它来检查之前的请求是否完成。

    // abort function with check readystate
    function abortAjax(xhr) {
    if(xhr && xhr.readystate != 4){
    xhr.abort();
    }
    }
    
    // this function usage
    abortAjax(xhr);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 2011-04-11
      • 2015-12-02
      • 2014-11-12
      • 2017-04-13
      • 2017-01-03
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多