我必须使用带有jquery的ajax complete选项的匿名函数吗?



为什么我不能将命名函数传递给jquery ajax complete选项。这是我的代码:

    $.ajax({
        type: 'post',
        url: baseURL + '/' + controller + '/' + action,
        data: params,
        success: function(data){
          //do something
        },
        complete: function(jqXHR, textStatus){
            checkResponseCode(jqXHR, textStatus);
        }
    });            

我只想写下:"complete:checkResponseCode(jqXHR,textStatus);"

尝试complete: checkResponseCode

您可以缩短代码,但是,行complete: checkResponseCode(jqXHR, textStatus);实际上调用了方法checkResponseCode,这显然不是您想要的。

您可以将其简化为:

$.ajax({
    type: 'post',
    url: baseURL + '/' + controller + '/' + action,
    data: params,
    success: function(data){
      //do something
    },
    complete: checkResponseCode
}); 

我有点生疏,但这不管用吗?

$.ajax({
    type: 'post',
    url: baseURL + '/' + controller + '/' + action,
    data: params,
    success: function(data){
      //do something
    },
    complete: checkResponseCode
    }
});            

您可以传递函数名,但这段代码是您调用的函数:

complete: checkResponseCode(jqXHR, textStatus);

最新更新