• ajax请求session失效重定向到登录页面


    在ajax请求的页面引入一个自定义的AjaxRedirect.js的文件

    AjaxRedirect.js的代码如下:

    $(function(){
        $.ajaxSetup({
            type: 'POST',
            complete: function(xhr,status) {
                var sessionStatus = xhr.getResponseHeader('sessionstatus');
                if(sessionStatus == 'timeout') {
                    var top = getTopWinow();
                    alert('10分钟没有操作, session已过期, 请重新登录.');
                    top.location.href = '../LoginController/toLoginPage.do'; //去到登录页面的请求            
                }
            }
        });
        function getTopWinow(){
            var p = window;
            while(p != p.parent){
                p = p.parent;
            }
            return p;
        }
    })

    过滤器中判断有没有登录的代码如下:

     1 private void checkLogin(HttpServletRequest req, HttpServletResponse res, FilterChain chain)
     2             throws IOException, ServletException {
     3         Account acc = (Account) req.getSession().getAttribute("acc");
     4         if (acc != null) {
     5             chain.doFilter(req, res);
     6             return;
     7         }
     8         // session失效的情况
     9         // 1.判断是ajax请求
    10         if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equals("XMLHttpRequest")) {
    11             res.setHeader("sessionstatus", "timeout");
    12         } else {// 2.不是ajax请求
    13             res.sendRedirect("../LoginController/toLoginPage.do");
    14         }
    15     }
  • 相关阅读:
    P1855 榨取kkksc03
    P1359 租用游艇
    P1656 炸铁路
    P1536 村村通
    P3367 【模板】并查集
    P3395 路障(洛谷)
    P1135 奇怪的电梯(洛谷)
    P1331 海战(洛谷)
    conda安装和pip安装的国内镜像配置
    cvpr2020 | 图像增强与恢复论文盘点
  • 原文地址:https://www.cnblogs.com/suhfj-825/p/8116906.html
Copyright © 2020-2023  润新知