ajax 呼叫後臺 session 過期問題(Spring security)
阿新 • • 發佈:2019-02-13
最近在專案中用到了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(); } } });