我在我的网站上使用单一的ajax方法,我需要参数化所有参数和选项,还需要回调方法(成功,beforeSend,错误等等)。
现在我写道:
function ajax(_type,_url,_data,_dataType,_starter,_callback_success,_callback_error, etc ..){
$.ajax({
type:_type,
data:_data,
dataType:_dataType,
url:'http://localhost:9292/'+_url,
success: _callback_success,
error: _callback_error,
// etc ...
});
}
之后我想以这种方式使用这种方法,例如:
ajax(
'GET',
users,
{},
'json',
false,
function(){
alert(json);
});
我不知道如何参数化状态(成功,错误,BeforeSend)?我正在尝试使用简单的变量_callback_error或_callback_success,但我不清楚如何在状态中传递回调
希望是明确的问题
答案 0 :(得分:3)
Jquery会在调用它们时将它们传递给回调函数。
function ajax(_type,_url,_data,_dataType,_callback_success, _callback_error){
$.ajax({
type:_type,
data:_data,
dataType:_dataType,
url:'http://localhost:9292/'+_url,
success: _callback_success,
error: _callback_error
});
}
以下是您的功能的示例用法。
ajax('POST', '/test.php', {}, 'json', function(data, textStatus, jqXHR){
// if request succeeds this callback will be invoked
}, function (jqXHR, textStatus, errorThrown){
// if request fails this callback will be invoked
}
});
答案 1 :(得分:1)
将函数名称传递给成功和错误:
function mySuccess(data) {
document.write(JSON.stringify(data));
}
function myError(err) {
alert(err);
}
ajax("jsonp", "https://ajax.googleapis.com/ajax/services/search/images?callback=?", { q: "cats", v:"1.0" }, "jsonp", "", mySuccess);
function ajax(_type,_url,_data,_dataType,_starter,_callback_success,_callback_error){
$.ajax({
type:_type,
data:_data,
dataType:_dataType,
url:_url,
success: _callback_success,
error: _callback_error
});
}