ajax 调用后台 session 过期问题(Spring security)


最近在项目中用到了Ajax刷新页面上的数据,由于使用了spring security3,所以当session过期后,Ajax调用的返回值在error中是设定的登录页面的html代码,查了很多资料,网上的大部分做法是设置security的session management,然后再new一个fliter等等。但我们需要的就是能跳转会登录页面,让用户从新登录一下就可以了,所以我的做法是直接在ajax的error返回值中判断是否包含登录页面的html代码的一部分,如果包含的话就直接window.location.href='login.jsp',就可以了,不用新建Fliter。

$.ajax({  
	        type: "post",  
	        async: false,  
	        url: 'queryInfo',  
	        data: JSON.stringify({
	        	sourceId : $("#source").val(),
	        	seriesId : $("#series").val(),
	        	modelId : $("#model").val(),
	        	city : $("#city").val(),
	        	strFrom : $("#from").val(),
	        	strTo : $("#to").val(),
	        	pageNo : pageNo
	        }),
	        dataType: "json", 
	        contentType: "application/json; charset=utf-8",  
	        success: function(data) {  
	            ...
	        },
	        error: function(data){
		        if (data.responseText.indexOf("<!DOCTYPE html>") >= 0) {
		        	window.location.href = "query";
		        } else {
		        	$("#error").show();
		        }
	        }
	    });



你可能感兴趣的:(spring,Ajax,security3,session过期)