首页 > 请教:JavaScript中写ajax请求如何复用代码

请教:JavaScript中写ajax请求如何复用代码

正在做订单列表,需要为不同订单状态的查询、上提加载等操作写ajax请求,这些请求大部分代码都一样,只在个别参数还有回调函数中的一处地方有不同:

我要写很多个请求,这样复制粘贴感觉很麻烦,以后如果拼接内容有变动,我还得改每处代码,不知道有没有什么方法能简化代码、复用代码。。。想过用eval()函数,把ajax请求拼接成字符串,但涉及好多层引号,拼不对、、


使用 promise 封装请求 百度一下 你就知道


不知道这样可否解决你的需求:
封装公用Ajax函数,比如Like This:

var Common = {
        ajax: function(data,fn,async){
            if(typeof(async)==undefined){
                async = true;
            }
            fn = _.isFunction(fn) ? fn : function(data){console.log("data arrived,with no callback:",data);}

            $.ajax({
                type : "POST",
                url : window.location,
                async: async,
                dataType : "json",
                data : data,
                beforeSend : Common.loadShow,
            })
            .always(Common.loadHide)
            .done(fn)
        }
        , loadShow: function(){
                //do sth
            }
        }
        , loadHide : function(){
            ////do sth
        }
    }

使用Like This:
var requestData = "..."; //根据不同状态,做下区别即可;为了复用,也可封装成函数,用函数返回值即可。
Common.ajax( requestData , function(data){...});
如需复用请求成功的处理函数,您也可以将这里回调的匿名函数做下封装。

【热门文章】
【热门文章】