zoukankan      html  css  js  c++  java
  • 重写ajax方法实现请求session过期时跳转登录页面

    jQuery(function($){ var _ajax=$.ajax; // 备份jquery的ajax方法 $.ajax=function(opt){ var _success = opt && opt.success || function(a, b){}; //获取ajax请求参数中的success方法; var _opt = $.extend(opt, { success:function(data, textStatus){ // 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要找到data是登录页的标记 //(这里是在文件中加了“weinianjie”然后注释掉。) if(data.indexOf('weinianjie') != -1) { window.location.href= Globals.ctx + "/login.action"; return; } _success(data, textStatus); //执行每个ajax自身的success方法 } }); return _ajax(_opt); //返回新的加入了session超时处理的ajax方法。 }; })

    jQuery(function($){
        
        if (!Array.prototype.indexOf) {
            Array.prototype.indexOf = function(elt /*, from*/) {
                var len = this.length >>> 0;
                var from = Number(arguments[1]) || 0;
                from = (from < 0) ? Math.ceil(from) : Math.floor(from);
                if (from < 0)
                    from += len;
                for (; from < len; from++) {
                    if (from in this && this[from] === elt)
                        return from;
                }
                return -1;
            };
        }
        
        
        // 备份jquery的ajax方法  
        var _ajax=$.ajax;
        // 重写ajax方法,先判断登录在执行success函数 
        $.ajax=function(opt){
            var _success = opt && opt.success || function(a, b){};
            var _opt = $.extend(opt, {
                success:function(data, textStatus){
                    // 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要找到data是登录页的证据(标记)
                    if(typeof(data)==='string') {
                        if(data.indexOf('page-forbidden')!=-1){
                            layer.error("你没有权限进行该操作",function(i){layer.close(i)});
                        }else if(data.indexOf("page-login")!=-1){
                             layer.alert("你的登录已经过期,点击确定重新登录!", {icon: 2,closeBtn: 0}, function (index) {
                                 layer.close(index);
                                 window.location.href= "/login.do";
                             });
                             return;
                        }
                    }
                    _success(data, textStatus);  
                }  
            });
           return  _ajax(_opt);
        };
    });
  • 相关阅读:
    02.CentOS Linux 7.7 Nginx安装部署文档
    rpm操作
    mysql命令行备份方法
    nginx reload的原理
    Linux操作笔记
    mysql账户授权
    centos系统内核升级
    docker随笔
    linux系统查看当前正在运行的服务
    数据库锁表问题
  • 原文地址:https://www.cnblogs.com/james-roger/p/7975646.html
Copyright © 2011-2022 走看看