這聽起來像一個奇怪的問題,但是當使用ajaxsetup時應用全局錯誤處理程序在POST時出現Ajax錯誤時會受到影響嗎?ajaxsetup錯誤處理程序是否適用於POST?
我有幾個地方,我正在嘗試處理Ajax錯誤,並且他們都沒有命中錯誤處理程序。碰到錯誤處理程序的地方都是GET,而不是所有POST的地方,並且我沒有看到爲什麼他們不會觸及它的任何其他原因。
如果它僅適用於GET,那麼在jQuery文檔中看不到任何提及此限制的內容會很奇怪。
這聽起來像一個奇怪的問題,但是當使用ajaxsetup時應用全局錯誤處理程序在POST時出現Ajax錯誤時會受到影響嗎?ajaxsetup錯誤處理程序是否適用於POST?
我有幾個地方,我正在嘗試處理Ajax錯誤,並且他們都沒有命中錯誤處理程序。碰到錯誤處理程序的地方都是GET,而不是所有POST的地方,並且我沒有看到爲什麼他們不會觸及它的任何其他原因。
如果它僅適用於GET,那麼在jQuery文檔中看不到任何提及此限制的內容會很奇怪。
不,它適用於GET和POST。看看這個文檔頁面(jQuery)http://api.jquery.com/jquery.ajax/,它表明它應該工作,不管請求類型如何。
你還沒有指定你試圖捕捉什麼錯誤以及你在捕捉什麼,但是我會認爲它們不是標準的連接錯誤。
在此基礎上,當Ajax發現錯誤時,通常是傳輸/連接問題。
對於GET
申請您可能:
等等,都試圖讓到服務器或等待響應。
但是,對於POST
它更多的是火災和遺忘(它不等待回覆)。所以,你會得到錯誤將沿
因爲一旦POST已經取得,連接到服務器,並給出了它的有效載荷,該線工作已經完成。
如果您遇到問題,例如更新數據(來自無效ID或類似內容),則需要發送一條帶有狀態碼的消息。
然後,您可以檢查返回的狀態代碼並決定如何處理它。 嘗試從服務器發送不同的錯誤(或狀態)代碼並將其捕獲到客戶端:
$.ajax({
method: 'GET/POST',
data: '...',
dataType: 'json',
contentType: 'application/x-www-form-urlencoded, charset=UTF-8',
timeout: 5000,
beforeSend: myBeforeSendFunction,
success: mySuccessFunction,
error: myErrorFunction,
statusCode: {
500: function() {
alert("Oops! Server error here.");
}
}
});