session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)

在登录过滤器中,判断请求是ajax请求还是超链接或者地址栏变化的请求

 if (httpServletReq.getHeader("x-requested-with") != null
                            && httpServletReq.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))
                    {
                        JSONObject jsessiontimeout = new JSONObject();
                        jsessiontimeout.put("sessiontimeout", true);
                        response.getWriter().print(jsessiontimeout.toString());
                        response.getWriter().flush();
                        response.getWriter().close();
                    }
                    else {
                        goLogin(httpServletReq, httpServletRes);
                    }

js

/*******************************************************************************
 * 判断session是否超时,所有动态请求都需要进行判断
 ******************************************************************************/
function cheackSessionTimeOut(data){
 
 if(isJson(data))
 {
  if(data.sessiontimeout==true){
    //重装浏览器地址栏的地址,跳到登陆页面
   window.location.reload();
  }
 }
};

在所有ajax请求数据成功之后都调用 cheackSessionTimeOut(data);

 $.post(
        url,
        {},
        function(data)
        {   
           cheackSessionTimeOut(data);
        }    
     );  

session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。