处理jquery的ajax请求session过期跳转到登录页面

首先需要在拦截器中判断是否是ajax请求,如果是

if(isAjaxRequest(request)){//ajax请求
                    
                    response.setHeader("sessionstatus", "timeout");
                    response.setHeader("redirectUrl", request.getContextPath()+Constant.LOGIN);
                }else{//form请求
                    
                    response.sendRedirect(request.getContextPath()+Constant.LOGIN);
                }

传送两个参数出去。

在页面上定义上ajax的通用参数:

<!-- 处理Ajax的session过期开始 -->
<script type="text/javascript">
if(typeof($)!="undefined"){
    $.ajaxSetup({
        contentType:"application/x-www-form-urlencoded;charset=UTF-8",//发送信息至服务器时内容编码类型
        complete:function(XMLHttpRequest,textStatus){
            var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
            if(sessionstatus!=null&&sessionstatus=="timeout"){
                alert("Session过期...");
                var redirectUrl = XMLHttpRequest.getResponseHeader("redirectUrl");
                window.location.replace(redirectUrl);
            }
        }
    });
}
</script>
<!-- 处理Ajax的session过期结束 -->
原文地址:https://www.cnblogs.com/jinzhiming/p/7510322.html