Ajax请求,如何调用其他函数而不是“成功”的一个?

时间:2014-01-19 18:58:56

标签: ajax jquery

我使用JQuery Ajax函数:

$.ajax({
    url: ...,
    success: function (){
        ...
    },
    ...
});

我需要在每次调用success函数之前执行一些代码(但是在收到响应之后)。 我想这个success函数就像一个事件一样被触发,所以有没有办法代替success一个进行其他函数调用?

4 个答案:

答案 0 :(得分:1)

您可以使用Global Ajax Event Handlers方法执行此操作。

听起来您可能想要使用AjaxComplete

$(document).ajaxComplete(function(){
    // do something here when ajax calls complete
});

警告 - 对于页面上的每个jQuery ajax调用都会发生这种情况......

答案 1 :(得分:0)

您也可以在完成开始时调用其他功能:

$.ajax({
    url: ...,
    done: function (){
        someOtherFunction();
    },
    ...
});

这应该可以实现你在问题中描述的内容。

答案 2 :(得分:0)

之前发送你想要的东西:

$.ajax({
    url: "...",
    beforeSend: function (x) {
        //do something before the the post/get
    }
}).done(function (data) {
    //done code
});

答案 3 :(得分:0)

我成功地在成功之前调用了另一个函数,将$.ajax()替换为自定义函数,如:

function mYajax(options) {
    var temporaryVariable = options.success;

    options.success = function () {
        console.log('Custom')
        if (typeof temporaryVariable === 'function')
            temporaryVariable()
    };
    return $.ajax(options);
}

$('button').click(function () {
    mYajax({
        url: "/echo/json/",
        data: {
            foo: "bar"
        },
        success: function (data, textStatus, jqXHR) {
            console.log('succeed action');
        },

    });
});