即使响应是错误的,也总是会触发成功

时间:2019-01-13 07:52:38

标签: javascript jquery ajax

我有一个接受4个参数的Ajax函数。 url,数据,成功回调和错误回调函数。我正在尝试使此Ajax函数尽可能可重用。外观如下:

function send_data(url, data, successCallback, errorCallback) {
    $.ajax({
        url: url,
        type: 'post',
        data: data,
        success: successCallback,
        error: errorCallback
    });
}

成功回调如下所示:

function createMessage(message) {
   console.log(message);
}

和错误回调如下所示:

function createErrorMessage(message) {
   console.log(message);
}

但是,当我使用应返回400错误错误请求的参数调用Ajax函数时,无论响应是200还是400,总是会触发成功函数。我不明白为什么只有错误函数才触发成功回调函数。 但是,两者都在触发。为什么会这样?

1 个答案:

答案 0 :(得分:0)

问题出在这些行中

success: successCallback,
        error: errorCallback

它们都立即一个接一个地运行,因此它们都返回它们的值。  为成功和错误创建一个匿名回调函数,它将正常工作。

success: function() {
    successCallback();
},
error: function() {
    errorCallback();
}