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

Posted admin_jh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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     }

 

以上是关于ajax请求session失效重定向到登录页面的主要内容,如果未能解决你的问题,请参考以下文章

停用的用户重定向到从 ajax 请求登录

Javaweb开发请求

项目一众筹网02_2_管理员登录(转发改成重定向到主页面退出登录(转发和重定向的区别强制session失效invalidate)新建jsp模板

springboot + shiro之登录人数限制登录判断重定向session时间设置

登录后重定向到请求的最后一页

当session会话结束时,重定向到登录页显示在iframe框内的问题