码迷,mamicode.com
首页 > Web开发 > 详细

js-重写jquery的ajax中的内容

时间:2018-01-08 21:05:00      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:备份   返回   jquer   窗口   function   timeout   页面   extend   测试   

 

 

/**
 * 测试
 * 2018/1/8 13:40 lee.wangel
 */
(function($){
    //备份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){
                //错误方法增强处理
                fn.error(XMLHttpRequest, textStatus, errorThrown);
            },
            success:function(data, textStatus,xhr){
                //console.log( ‘-------->,ajax 被 代理‘);
                //成功回调方法增强处理
                if(data.code ==‘-2‘){
                    setTimeout(function () {
                        var topPage = getTopWinow();
                        topPage.location.href =‘/‘;
                    },1000)
                    return;
                };
                fn.success(data, textStatus);
            }
        });
        return _ajax(_opt); // 用于返回,防止第三方插件绑定了事件在ajax上
    };
})(jQuery);

顶级页面

/**
 * 在页面中任何嵌套层次的窗口中获取顶层窗口
 * @return 当前页面的顶层窗口对象
 */
function getTopWinow(){
    var p = window;
    while(p != p.parent){
        p = p.parent;
     }
    return p;
}

 

js-重写jquery的ajax中的内容

标签:备份   返回   jquer   窗口   function   timeout   页面   extend   测试   

原文地址:https://www.cnblogs.com/hwaggLee/p/8244631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!