How can I abort an AJAX call?
本问题已经有最佳答案,请猛点这里访问。
我计划在我的网站中实现一系列jquery-ajax调用,并希望开发一个函数来中止ajax调用。我该怎么做?我已经读过这个链接,但它对我不起作用。
您需要将Ajax请求分配给变量,
1 2 3 | var xhr = $.ajax({ *** }); |
然后打电话给
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); |