2012-02-21 183 views
7

我使用jQuery作出AJAX请求如何停止Ajax请求

$.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

我怎样才能手动停止我的特殊Ajax请求?

+1

可能的重复:http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery – 2012-02-21 08:29:37

+0

好的,谢谢。我没有找到它后,一些硬搜索 – tsds 2012-02-21 08:31:50

回答

22

$.ajax()方法返回一个可以用来做一个对象:

var xhr = $.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

再后来,当你想停止请求:

xhr.abort(); 
+1

阿贾克斯可以被阻止启动,但一旦其无法阻止它... – JIA 2012-02-21 08:31:29

+4

@JIA,你可以放弃在浏览器中的AJAX请求,但当然,如果它有已经打到网络服务器,这是一个完全不同的故事。 Web服务器将继续执行请求。只是因为浏览器放弃了请求,Web服务器会将响应发送给void。 – 2012-02-21 08:34:26

+0

@DarinDimitrov所以这意味着如果一个已经发起的请求使用'.abort'方法被中止,它将不会被客户端... – JIA 2012-02-21 08:46:51

4

Ajax请求的HTTP交易曾把不能停止。您可以停止启动Ajax请求,但不会终止已提出的请求。

+2

XHR请求(如所有HTTP请求)可以在正在进行时中止。某个Ajax库是否暴露了这个功能是一个不同的问题。 – GregT 2014-05-02 18:55:57