1. 程式人生 > >ajax 呼叫後臺 session 過期問題(Spring security)

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();
		        }
	        }
	    });