对于jQuery $.ajax
调用:
我想要一个全局错误处理程序,如下所示:
$(document).ajaxError(function (e, jqxhr, settings, exception) {
window.location = '/Error/ServerError';
});
但是......我只希望在未定义error
次调用的$.ajax
方法时运行此项。我看是否它们没有明确定义,它们是匿名方法,但我不知道如何检查方法是匿名还是命名。
所以,对于这样的事情,我不希望调用全局处理程序:
$.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
}
});
答案 0 :(得分:4)
您可以检查全局处理程序中的settings
参数是否定义了error
字段:
$(document).ajaxError(function (e, jqxhr, settings, exception) {
if ( settings.error )
return;
window.location = '/Error/ServerError';
});
的工作示例