向所有jQuery post()函数添加错误

时间:2011-12-12 15:36:22

标签: jquery ajax

我们的应用程序使用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()函数的默认值添加,所以我不必每次都包含它?

2 个答案:

答案 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." );
});