Ajax请求,seesion超时
分析:
当session超时的时候spring-security会跳转到登录页面。所以只要在登录的controller里面对请求作出判断,如果是异步请求则在response header中添加标识,在前台通过js跳转到登录页面。
后台判断代码:
if(request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
response.setHeader("sessionstatus", "timeout");
}
前台js代码:
$("#saveBtn").click(function(){
var _url = getRootPath() + "/userController/save";
$.ajax({
url : _url,
async : false,
type : "POST",
dataType : "json",
data : $("form:first").serialize(),
complete : function(XMLHttpRequest, textStatus){
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
if(sessionstatus=="timeout"){
alert("登录超时,请重新登录!");
//如果超时就处理 ,指定要跳转的页面
window.location.replace(getRootPath() + "/loginController/login");
}
},
success : function(data){
if(data && data.success){
easyShow(data.msg);
}
}
});
});