问题:
1. session超时了,客户端发出了一个ajax请求
解决思路:
1. filter判断出ajax请求,设置一个响应头标志
2. 客户端ajax请求要求有一个全局处理函数 ,获取相应标志,做出相应处理
解决办法:
//如果是ajax请求响应头会有,x-requested-with; if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with") .equalsIgnoreCase("XMLHttpRequest")){ //在响应头设置session状态 response.setHeader("sessionstatus", "sessionOut"); response.getWriter().print("sessionOut"); return null; }
$.ajaxSetup({ contentType:"application/x-www-form-urlencoded;charset=utf-8", complete:function(XMLHttpRequest,textStatus){ // 通过XMLHttpRequest取得响应头,sessionstatus, var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); if(sessionstatus=="sessionOut"){ window.location.replace(webPath+"/common/toIndex.html"); } } });