Javascript 使用函数处理AJAX错误,如何传递其他参数?
我正在使用以下类型的AJAX调用:Javascript 使用函数处理AJAX错误,如何传递其他参数?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用以下类型的AJAX调用: $.ajax({ dataType: "json", type: "GET", url: url }).done(function(result, textStatus, jqXHR) { if(result.success == 1) { try { if(!result.value_that_might_be_null) { throw new Erro
$.ajax({
dataType: "json",
type: "GET",
url: url
}).done(function(result, textStatus, jqXHR) {
if(result.success == 1) {
try {
if(!result.value_that_might_be_null) {
throw new Error("Value is null");
}
} catch(err) {
ajaxError(jqXHR, err.message);
}
} else {
throw new Error("Unsuccessful");
}
}).fail(ajaxError);
function ajaxError(jqXHR, textStatus, errorThrown) {
console.log('jqXHR: ' + jqXHR);
console.log('status: ' + textStatus);
console.log('error: ' + errorThrown);
}
这使我能够很好地控制AJAX调用,并且可以测试某些值是否不存在、是否设置为错误的值等等
但是,我有几个不同的AJAX调用,每个调用在.done回调中执行完全不同的操作,这意味着它们需要分开,而不是重新分解到一个类中
但我的问题是,当通过try/catch语句调用ajaxError时,如何向其添加额外参数
我能做点什么吗
function ajaxError(jqXHR, status, error, additionalParameter = null) {
//blah blah blah
}
ajaxError(jqXHR, errorMessage, errorThrown, myAdditionalParameter);
您可以创建一个接受成功和错误回调的函数,如下所示:
function sendRequest(url, success, error) {
$.ajax({
dataType: "json",
type: "GET",
url: url,
success: function(result, textStatus, jqXHR) {
// do something if you want to
if (success)
success();
},
error: function(jqXHR, textStatus, errorThrown) {
// do something if you want to
if (error)
error();
}
});
}
function ajaxError(jqXHR, textStatus, errorThrown) {
console.log('jqXHR: ' + jqXHR);
console.log('status: ' + textStatus);
console.log('error: ' + errorThrown);
}
您可以像sendRequest'/url',null,ajaxError这样调用它
或者sendRequest'/url',null,ajaxError.bindnull,someParameterajaxError.bindnull,someParameter可能是重复的。bindnull,someParameter是这里的关键,对吗?@MrPablo yes inseak in method hope you have did我实际上使用了beforeSend并向jqXHR对象添加了一个自定义属性,这样我就可以发现触发了哪个AJAX调用