2012-10-08 179 views
2

可能是最好的修訂問題:jQuery的AJAX中止後請求發送

我在我的代碼調用Ajax,我想取消發送後馬上打電話。基本上,我不想等待響應,我只是希望從客戶端發送整個請求。任何人都可以提供一些關於如何完成這個的想法?

我已經在Chrome中嘗試了以下內容,但似乎請求從未實際發送過(我在服務器端記錄收到的請求)。

基本上是:

var sendRequest = jQuery.ajax({ 
    url: '/awesomeness.txt', 
    dataType : 'json', 
    timeout: 2000, 
    cache: false, 
    success: function(result) {} 
}); 

sendRequest.abort(); 

我自己也嘗試設置的1超時,但奇怪的是,如果我從一個新的瀏覽器不發送請求加載頁面(如果我刷新頁面被髮送)。

回答

3

一樣簡單只是:

jQuery.ajax({ 
    url: '/awesomeness.txt', 
    dataType : 'json', 
    timeout: 2000, 
    cache: false, 
    afterSend: function() {/*run awesome code*/} 
    success: function(result) {} 
}); 

// call whatever you want after send 
afterSend(); 

所以沒有內置在該jquery.ajax事件,但你可能只是調用該函數後$.ajax();

-1

權就叫YOUR_COOL_FUNCTION你的代碼塊之後。

這工作,因爲Ajax請求使用回調,因此它不會阻擋用於執行請求的緣故當前執行,但它會發出請求,然後移動到你的代碼,所以它是把任何一樣簡單在此AJAX調用之後所需的代碼塊。