zoukankan      html  css  js  c++  java
  • ajax前置处理实现异步请求session过期时跳转登录页面

    第一篇博文,mark一下zhq[0]。

    问题描述:用户页面,当session过期或都session注销后,普通页面后端都会有过滤器,session过期Redirect到登录页面,但是ajax请求后端只会返回登录页面源码并不跳转。

    网上有很多方法1.返回的字符串附加登录状态2.修改http头信息;3.修改jquery源文件判断;综合比较还是以下方法最方便更易维护。个中缺点大家应该都明了就不赘述。

    解决方案:

    jQuery(function($){
        // 备份jquery的ajax方法  
        var _ajax=$.ajax;
        // 重写ajax方法,
        $.ajax=function(opt){
            var _success = opt && opt.success || function(a, b){};
            var _error = opt && opt.error || function(a, b){};
            var _opt = $.extend(opt, {
                success:function(data, textStatus){
                    // 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要判断(登录页面一般是源码,所以这里只判断是否有html标签)
                    if(data.indexOf('html') != -1) {
                        window.location.href= "http://www.baidu.com";
                        return;
                    }
                    _success(data, textStatus);  
              },
              error:function(data, textStatus){
                if(data.responseText.indexOf('html') != -1){
                  window.location.href= "http://www.baidu.com";
                  return;
                }
                _error(data, textStatus);
              } 
            });
            return _ajax(_opt);
        };
    });
    });  

     我遇到的是分页ajax,请求getList.html页面,session过期后端会把请求跳到login.html; 这里其实ajax执行的是error,所以只需给error一个前置处理就可以了。

  • 相关阅读:
    如何创建多线程
    Oracle导入数据表
    Oracle如何创建数据库用户
    Oracle忘记密码,如何修改密码
    Oracle如何创建表空间
    leetcode 787. K 站中转内最便宜的航班 js题解
    JS实现平衡二叉树
    typescript的安装与配置
    二分查找JS实现
    JS作用域(一):一般变量声明
  • 原文地址:https://www.cnblogs.com/web-easy/p/5056653.html
Copyright © 2011-2022 走看看