2012-02-21 182 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