美文网首页
重写jquery的ajax方法

重写jquery的ajax方法

作者: driver_ab | 来源:发表于2022-02-22 11:09 被阅读0次
//首先备份下jquery的ajax方法  
    var _ajax=$.ajax;  
       
    //重写jquery的ajax方法
    $.ajax=function(opt){  
        //备份opt中error和success方法 
        var fn = {  
            error:function(XMLHttpRequest, textStatus, errorThrown){},  
            success:function(data, textStatus){}  
        }  
        if(opt.error){  
            fn.error=opt.error;  
        }  
        if(opt.success){  
            fn.success=opt.success;  
        }  
           
        //扩展增强处理 
        var _opt = $.extend(opt,{  
            error:function(XMLHttpRequest, textStatus, errorThrown){
            debugger;
                erro = eval("(" + XMLHttpRequest.responseText + ")");
                if(erro.err_code == 500)
                    alert(erro.err_msg);
                //错误方法增强处理 
                fn.error(XMLHttpRequest, textStatus, errorThrown);  
            },  
            success:function(data, textStatus){
                //成功回调方法增强处理  
                fn.success(data, textStatus);  
            },  
            beforeSend:function(xhr){  
                xhr.setRequestHeader('X-Token',$.getCookie("X-Token"));
                 xhr.setRequestHeader('X-Client',"PC");
                xhr.setRequestHeader('Content-Type',"application/json");
            }
        });  
        return _ajax(_opt);  
    };

session超时处理示例:

(function ($) {
    //备份ajax
    var ajax_temp = $.ajax;

    $.ajax = function (option) {

        var complete = option.complete;

        option.complete = function (XMLHttpRequest, textStatus) {

            var sessionStatus = XMLHttpRequest.getResponseHeader("sessionstatus");

            if (sessionStatus == 'sessionOut') {
                console.log("登录超时");

                return;
            }

            if (complete)
                complete(XMLHttpRequest, textStatus);

        }

        return ajax_temp(option);

    };

})(jQuery);

相关文章

网友评论

      本文标题:重写jquery的ajax方法

      本文链接:https://www.haomeiwen.com/subject/pqcglrtx.html