我计划在我的网站上实现一系列jQuery AJAX调用,并希望开发一个中止AJAX调用的函数。我怎样才能做到这一点?我已经阅读了this link,但它对我不起作用。
答案 0 :(得分:6)
您需要将ajax请求分配给变量
var xhr = $.ajax({
***
});
然后致电abort()
xhr.abort();
答案 1 :(得分:0)
单次使用AJAX很简单。 XMLHttpRequest有一个中止方法,它取消了请求。
// 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);