关于javascript:如何在jquery中停止Ajax调用

How to stop Ajax call in jquery

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

我想停止jquery中的ajax调用,它不工作

1
2
3
4
5
6
7
8
9
10
var xhr = null;

xhr = $.ajax({
    url : 'www.example.com?some-large-call',
    success : function(responseText) {
        // some DOM manipulation
    }
});

$("#button").click(function() { xhr.abort() });

我提到了下面的链接

http://www.stoimen.com/blog/2009/09/29/jquery-stop-an-ajax-call/


abort()它将导致客户机停止侦听事件,但可能不会停止服务器处理事件。


这可能有更多的xhr。

请看这个答案:

jquery abort()发送另一个之前的Ajax请求

从链接:

每次执行Ajax请求时,添加到数组:

1
2
3
4
5
6
7
8
9
requests.push(
$.ajax({
    type: 'post',
    url: '/test.php',
    data: search_data,
    success: function(data) {
        $('#catalog').html(data);
    }
}));

然后,当你想停止通话时……遍历数组并中止所有调用。

1
2
 for(var i = 0; i < requests.length; i++)
requests[i].abort();

谢谢


如果您粘贴的代码是您实际使用的代码,那么难怪它不起作用。

正如它在网站上所说,它只是用来说明一个例子的伪代码。这里没有Ajax请求,也没有要停止的内容(至少没有足够大的内容可以停止)