1
對於jQuery的$.ajax
電話:
我想有一個全局錯誤處理程序,這樣的事情:
$(document).ajaxError(function (e, jqxhr, settings, exception) {
window.location = '/Error/ServerError';
});
但是...我只有當$.ajax
調用中的error
方法未定義時,才希望該方法運行。我看他們是否沒有明確定義,他們是匿名方法,但我不知道如何檢查一個方法是匿名還是命名。
所以,對於這樣的事情,我不希望被稱爲全球處理程序:
$.ajax({
url: "url",
type: "POST",
success: function(data) {
//do something
},
error: function(jqXHR, textStatus, errorThrown) {
ShowError("Error", errorThrown);
}
});
但對於這個電話,我想叫全球處理器,並重定向頁面:
$.ajax({
url: "url",
type: "POST",
success: function(data) {
//do something
}
});
工作示例它在jsFiddle中工作,但由於某種原因,它不適用於我的項目。無論是定義的還是匿名的,settings.error都是真的。 – Martin 2012-07-10 14:05:39
您使用哪種瀏覽器/ jQuery版本?在jQuery> = 1.5的Firefox/Chrome/Safari/IE6中,'settings.error'不是匿名的,而是'undefined',所以上述方法可行(我無法在Opera或jQuery中使用該示例<= 1.4)。當你console.log(設置)'它是否**總是**在你的項目中定義了錯誤?你是否按照你在問題中描述的方式調用'$ .ajax'? (即有沒有其他的代碼在沒有的時候注入錯誤參數?) – mgibsonbr 2012-07-10 21:17:00