我有一个接受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,总是会触发成功函数。我不明白为什么只有错误函数才触发成功回调函数。 但是,两者都在触发。为什么会这样?
答案 0 :(得分:0)
问题出在这些行中
success: successCallback,
error: errorCallback
它们都立即一个接一个地运行,因此它们都返回它们的值。 为成功和错误创建一个匿名回调函数,它将正常工作。
success: function() {
successCallback();
},
error: function() {
errorCallback();
}