1. 程式人生 > >ajax請求session失效重定向到登錄頁面

ajax請求session失效重定向到登錄頁面

ttr == als xmlhttp 操作 var ajax請求 direct 自定義

在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失效重定向到登錄頁面