AJAX小扩展

    ajax请求的时候,会碰到这种情况,例如需要在每个ajax请求都带上相同的验证参数,是否有方法能够自动的将这些参数在ajax请求的时候自动带上?

    我们都知道jQuery的ajaxSetup函数可以在ajax发起请求前,修改ajax请求的默认设置选项,之后执行的ajax的请求,如果对应的选项参数没有设置,将使用更改后的默认设置。设置的选项会存放于jQuery.ajaxSettings中。

$.ajaxSetup({   
    data: {
        token: "XXXX"     //在每次ajax请求带上token参数
    }
});

 

    在ajax请求的时候,会合并  ajaxSettings  中的默认设置的参数,

   

 

    但ajaxsetup对get请求不生效,并不会合并参数,对post请求生效。因为get请求,已经将查询字符串已经放在url上了。对于get请求,我们可以通过扩展ajax解决此问题

(function ($) {
    var _ajax = $.ajax;
    $.extend({
        ajax: function (o) {
            //todo
            if(o.data){
                //......
            }        
            return _ajax.call(this, o);
        }
    });
})(jQuery);

 

参考资料:https://groups.google.com/forum/#!topic/jquery-dev/OBcEfgvTJ9I

posted @ 2015-05-27 19:11  卉子  阅读(331)  评论(0)    收藏  举报