参数化ajax回调

时间:2012-05-01 21:10:49

标签: jquery ajax callback

我在我的网站上使用单一的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,但我不清楚如何在状态中传递回调

希望是明确的问题

2 个答案:

答案 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)

将函数名称传递给成功和错误:

http://jsfiddle.net/SJ8Xm/

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
    });
}​