关于javascript:如何中止AJAX调用?

How can I abort an AJAX call?

本问题已经有最佳答案,请猛点这里访问。

我计划在我的网站中实现一系列jquery-ajax调用,并希望开发一个函数来中止ajax调用。我该怎么做?我已经读过这个链接,但它对我不起作用。


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

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

然后打电话给abort()

1
xhr.abort();

在Ajax的一次使用中,它很简单。xmlhttpRequest有一个abort方法,用于取消请求。

1
2
3
4
5
6
7
8
9
10
// 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-u received-2、loading-3和done-4)。所以我们可以使用它来检查上一个请求是否完成。

1
2
3
4
5
6
7
8
9
// abort function with check readystate
function abortAjax(xhr) {
if(xhr && xhr.readystate != 4){
xhr.abort();
}
}

// this function usage
abortAjax(xhr);