jquery:全局设置Ajax请求处理session过期后重新登录

在session的filter中增加,当发现是过期的情况,如果是ajax请求,则写回一些信息

服务端

//session过期,如果是 AJAX请求,就写回SESSIONSTATE:0  
    if(request.getHeader("x-requested-with")!=null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){   
        PrintWriter printWriter = response.getWriter();   
        printWriter.print("{sessionState:0,url:"+request.getContextPath()+"}");   
        printWriter.flush();   
        printWriter.close();   
    }else{  
        response.sendRedirect(request.getContextPath());  
    }

客服端
$.ajaxSetup全局设置Ajax请求

//处理AJAX的session过期问题  
    $.ajaxSetup({   
        contentType:"application/x-www-form-urlencoded;charset=utf-8",   
        cache:false ,   
        complete:function(XHR,TS){   
            var resText=XHR.responseText;   
            if(resText!=null && resText.indexOf("sessionState:0")>0){   
                 document.location.href='whatever_justTotheLoginPage.action';   
                 alert("您的登录已超时, 请点确定后重新登录!");    
                 //showMsg("您的登录已超时, 请重新登录!",'error');  
            }   
        }   
    }); 
One Comment

Add a Comment

邮箱地址不会被公开。 必填项已用*标注