當ajax請求能夠從服務器獲得某些響應時,似乎只有成功,錯誤和完整回調纔會觸發。檢查jQuery ajax請求的狀態
因此,如果我關閉服務器,則不會執行以下錯誤回調,並且請求會自動失敗。
$.ajax({
type: "GET",
url: "http://localhost:3000/",
dataType: "script",
success: function() {
alert("success");
},
error: function() {
alert("error");
}
});
根本找不到服務器時拋出錯誤的最佳方法是什麼?
編輯 - 從我試過看,看來jQuery的內置錯誤處理不適用於JSONP或dataType:「腳本」。所以我會嘗試設置手動超時。
編輯 - 做了更多的研究,看起來不僅ajax錯誤回調不起作用,但你不能放棄與dataType腳本或jsonp的ajax請求,並且這些請求忽略超時設置。
還有一種替代方案 - jquery-jsonp插件,但它使用隱藏的iframe,我寧願避免。所以我決定創建一個手動超時,如下所示。如果請求超時,則不能中止請求,這意味着即使在超時之後,腳本仍可能會加載,但如果服務器不可用,至少會觸發一些事件。
jQuery的ajax內置錯誤處理(請參閱下面的答案),您可以使用ajaxsetup來應用這些選項。 – Sphvn 2010-07-02 04:48:25