ajax全局设置相关

问题描述:怎么设置ajax的通用设置

解决方法:通过$.ajaxSetup()函数来全局设置。
如果要处理$.ajax()得到的数据,则需要使用回调函数:beforeSend、error、success、complete等等。

$.ajaxSetup({
    cache:false , // 不缓存该ajax请求的数据
})

问题描述:如果已在common.js设置ajax的全局属性如:

$.ajaxSetup({
    cache : false,
    type: 'POST',
    beforeSend : function(xhr, params) { // 发送请求前触发
        if(localStorage.length > 0 && localStorage.getItem("user")){
        
            if (params.url.indexOf('?') == -1) {
                params.url = params.url + "?userName=" + JSON.parse(localStorage.getItem("user")).loginName +"&token="+ localStorage.getItem("token")
            } else {
                params.url = params.url + "&userName=" + JSON.parse(localStorage.getItem("user")).loginName +"&token="+ localStorage.getItem("token")
            }
            return true;
        }
    }
});

那么,怎么在单独的某个ajax不使用该全局设置呢?

解决方法:在单个的ajax中重写设置好的属性(优先级覆盖)

问题描述:如果我既要使用设置好的全局属性,又要使用全局设置好的beforeSend,并且我还想在beforeSend中执行一些单个ajax需要执行的东西,该如何操作?

    解决方法:
    // 全局设置的beforeSend方法中判断单个里面是否有某方法,如果有执行,否则跳过
    $.ajaxSetup({
        cache : false,
        type: 'POST',
        beforeSend : function(xhr, params) { // 发送请求前触发
            if(typeof this.ajaxBeforeSendCallback != 'undefined'){
                this.ajaxBeforeSendCallback();
            }
            if(localStorage.length > 0 && localStorage.getItem("user")){
            
                if (params.url.indexOf('?') == -1) {
                    params.url = params.url + "?userName=" + JSON.parse(localStorage.getItem("user")).loginName +"&token="+ localStorage.getItem("token")
                } else {
                    params.url = params.url + "&userName=" + JSON.parse(localStorage.getItem("user")).loginName +"&token="+ localStorage.getItem("token")
                }
                return true;
            }
        }
    });
    // 单个需要在beforeSend中执行其他方法的ajax的使用
    $.ajax({
        url: url,
        data: data,
        dataType:"json",
        ajaxBeforeSendCallback:function(){
            // 在这里执行需要执行的方法
        },
        success: function(data){}
    });

你可能感兴趣的:(ajax全局设置相关)