在Ajax请求上执行两个成功处理程序

时间:2014-05-30 14:51:20

标签: javascript jquery ajax

我正在构建一个Web应用程序,其中包含散布在所有模板周围的大量Ajax请求

我在主模板上使用ajaxSetup,所有其他模板都将从该模板继承。在这个ajax设置中,我做了一些前期和后期处理。

//on main.html
$.ajaxSetup({
    beforeSend: function (xhr)
    {
        //stuff
    },
    success: function (data)
    {
        //other stuff
    }
})

每个ajax请求都有一个自己的成功处理程序,必须执行。

问题是,ajax请求的成功处理程序将覆盖ajaxSetup中定义的全局处理程序。

//on specific.html
$.ajax({
    success: function (data){
         //request specific request handler which overrides $.ajaxSetup.
    }
})

我的问题是,无论如何我可以解决这个问题吗?我不想在每个单独的ajax请求上编写相同的代码或函数调用。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用ajaxSuccess来完成此http://api.jquery.com/ajaxSuccess/

$( document ).ready(function(){
    $(this).ajaxSuccess(function( event, request, settings ) {
          console.log("Global Success")
    });

    $.ajax({method: "GET", url: "/echo/json",success : function(e){
        console.log("Success");
    }});
});

http://jsfiddle.net/Jpv5P/1/