我们的应用程序使用jQuery通过AJAX处理所有用户信息。我们返回data.success或data.error,具体取决于API是否有效。我们还在每个post()上运行jQuery error()函数,以防万一实际问题到达服务器。对所有人来说,同样的事情变得乏味。
这是一个简化的例子:
$.post('/api/nodeSave.php', {
net: true
}, function(data) {
if (data.error) {
mainAlert('error',data.error);
} else if (data.success) {
mainAlert('success',data.success);
}
})
.error(function(data) {
mainAlert('error','There was a problem contacting the server.');
});
我的问题是:有没有办法将trailing error()函数作为我们运行的所有post()函数的默认值添加,所以我不必每次都包含它?
答案 0 :(得分:2)
是的,您可以使用ajaxSetup方法:
$.ajaxSetup({
error: function(data){
mainAlert('error','There was a problem contacting the server.');
}
});
此外,在ajax方法被折旧后调用.error
,继续尝试转而使用.fail
(这是完全相同的)
答案 1 :(得分:2)
我不同意@Kevin:
注意:应使用各自的全局Ajax事件处理程序方法设置全局回调函数 - .ajaxStart(),. ajaxStop(),. ajaxComplete(),. ajaxError(),. ajaxSuccess(),. ajaxSend () - 而不是$ .ajaxSetup()的选项对象。
$("div.log").ajaxError(function() {
$(this).text( "Triggered ajaxError handler." );
});