session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java推断是否是ajax请求)
Posted liguangsunls
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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请求)的主要内容,如果未能解决你的问题,请参考以下文章
springmvc使用ajax进行数据交互时,session失效问题(@ResponseBody与session能否同时使用?)