如何从ajax回调传递参数到委托函数

时间:2016-01-03 08:00:21

标签: jquery ajax

我正在jQuery开发原型,以便使用ajax调用更简单。

代码

 ajax: {
    call : function(url,dataToSend,doOnSuccess,doOnFailure) {
        $.ajax({
            type: "POST",
            url: url,
            data: dataToSend
            ,
            //cache: false,
            success: function (result) {                 

                    doOnSuccess();

            },
            error: function(xhr, textStatus, errorText) {

                    doOnFailure();

            }
        });

    }
}

原型

ajax.call("MyUrl",{data:"MyData To Send"},alert(),alert());

例如,我想在警报中显示成功的结果。 那么如何将ajax回调参数传递给我作为参数传递的My委托(例如doOnSuccess()和doOnFailure())?

最好的问候!!

2 个答案:

答案 0 :(得分:0)

如果返回回调Ajax在jquery中读取when or deferred

jQuery.when

jQuery.deferred

或者 呼叫功能,例如:

ajax.call("MyUrl",{data:"MyData To Send"},alert,alert);

答案 1 :(得分:0)

Ajax与否,这是js中的回调函数问题。 您只需将函数作为参数传递。让我们定义你的自定义doOnSuccess和doOnFailure函数:

function doOnSuccess(data, textStatus, xhr){
    /* Do something with data, textStatus, xhr */
    alert(data);
}

function doOnFailure(xhr, ajaxOptions, thrownError){
    /* Do something with parameters) */
    alert('error');
}

然后你可以定义你的ajax函数:

 ajax: {
    call : function(url,dataToSend,doOnSuccess,doOnFailure) {
        $.ajax({
            type: "POST",
            url: url,
            data: dataToSend
            ,
            //cache: false,
            success: function (data, textStatus, xhr) {                 
                    /* Do something with data before doOnSuccess */
                    doOnSuccess(data, textStatus, xhr);

            },
            error: doOnFailure
        });

    }
}

现在我们可以调用ajax函数:

ajax.call("MyUrl",{data:"MyData To Send"},doOnSuccess,doOnFailure);