我有幾個ajax調用,當它們成功時,我需要首先對所有的響應進行相同的檢查,然後,如果檢查不會失敗,對答覆做不同的事情。
在我使用在每個呼叫的success
選項並插入此檢查在每個電話的那一刻,就像這樣:
$.ajax({
success: function (data){
if (response_has_errors(data))
{return}
// do stuff
}
});
所以,我有這樣的想法:使用$(document).ajaxSucces()
做的同樣的檢查,然後使用$.ajax().done()
或success
選項與每個呼叫。
但我需要$(document).ajaxSucces()
中的處理程序始終首先執行,如果它返回false
,則不執行單個處理程序。 我該怎麼做?
不幸的是,我對服務器返回的內容沒有任何影響。另外,在我的解決方案中,我不太瞭解如何*首先*進行相同的檢查,然後*然後*單獨處理回覆。 – protasovams
@protasovams如果你不能改變服務器的響應代碼,你可以(也應該)仍然使用[jQuery's * Deferred * architecture](http://api.jquery.com/category/deferred-object/)。這是一個可以清除一些事情的例子。 http://jsfiddle.net/XTVxt/ – Tomalak
哇,非常感謝一個偉大的例子,它確實清除了一切。 – protasovams