2017-03-26 48 views
0

這聽起來像一個奇怪的問題,但是當使用ajaxsetup時應用全局錯誤處理程序在POST時出現Ajax錯誤時會受到影響嗎?ajaxsetup錯誤處理程序是否適用於POST?

我有幾個地方,我正在嘗試處理Ajax錯誤,並且他們都沒有命中錯誤處理程序。碰到錯誤處理程序的地方都是GET,而不是所有POST的地方,並且我沒有看到爲什麼他們不會觸及它的任何其他原因。

如果它僅適用於GET,那麼在jQuery文檔中看不到任何提及此限制的內容會很奇怪。

回答

0

你還沒有指定你試圖捕捉什麼錯誤以及你在捕捉什麼,但是我會認爲它們不是標準的連接錯誤。

在此基礎上,當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."); 
     } 
    } 
}); 
相關問題