2011-12-02 112 views
4

我正在開發一些執行一些Ajax操作的項目。現在ajax調用是通過腳本完成的,我不想進入這些腳本。使用jQuery監聽Ajax POST響應

此外,被髮回的響應是很隨機的,不是那麼容易抓牢。他們沒有一個堅實的階級,我可以尋找。

對我來說,最好的辦法是,每當一個柱通過頁面上的任何函數返回的,我的功能之一是解僱。請注意,我不知道從哪裏撥打電話,我對此不感興趣。我唯一想知道的是如果有收到的帖子。我也是對實際的帖子響應數據不感興趣。只要頁面收到來自頁面發出的POST的一些響應,就要觸發一個函數。

是類似的東西可能。

回答

8

看看.ajaxSetup()。它允許您添加代碼,這些代碼是針對從您的JS代碼中的任何位置觸發的任何AJAX事件執行的。

在其上運行success:事件的東西,這將這樣的伎倆:

$.ajaxSetup({ 
    success: function() { 
     // Your code 
    } 
}); 

捕捉任何AJAX事件,失敗與否,使用此:

$.ajaxSetup({ 
    ajaxComplete: function() { 
     // Your code 
    } 
}); 
+0

我還沒有看到這個,這看起來像我可以使用的東西。我會檢查一下,我很好奇腳本被解僱的順序,我會解決這個問題。謝謝。 –

+0

它完美的作品。謝謝! –

+0

注:全局回調函數應與各自的全局AJAX事件處理方法進行設置 - [.ajaxStart()](http://api.jquery.com/ajaxStart/),[.ajaxStop()](HTTP:// api.jquery.com/ajaxStop/),[.ajaxComplete()](http://api.jquery.com/ajaxComplete/),[.ajaxError()](http://api.jquery.com/ajaxError/ ),[.ajaxSuccess()](http://api.jquery.com/ajaxSuccess/),[.ajaxSend()](http://api.jquery.com/ajaxSend/) - 而不是在'options ''.ajaxSetup()'的對象。 – AlecRust

0

另一個變化,以Bojangles答案是你可以傳遞這樣的附加參數,這樣你就可以更好地控制請求。

因爲這個代碼將在每一個請求上運行,所以如果你想要觸發點擊功能,你可能不希望現在再觸發它的每一個爲每個請求。所以你會將你的點擊代碼包裝在一些有條件的IF語句中。

$(document).ajaxComplete(function(event,request, settings){ 
    // Your code here 
});