1.在springmvc或者一套ajax框架的時(shí)候需要進(jìn)行處理,攔截器或者攔截器的狀態(tài),,尤其針對(duì)于session的時(shí)候進(jìn)行的處理,,怎么樣很好的控制頁面的跳轉(zhuǎn)呢
在攔截器里面進(jìn)行處理和跳轉(zhuǎn)的時(shí)候,ajax基本上沒有什么好的處理方式要么是轉(zhuǎn)發(fā)要么是重定向的兩種方式
可是進(jìn)行過測(cè)試和很多的處理依然可以做到,,但是頁面不會(huì)跳轉(zhuǎn).針對(duì)以上的兩種情況,,經(jīng)過自己的探究和研究得到一種很可靠的方式,網(wǎng)上也提供了這種方式,,但是只是思想,,有代碼但是實(shí)踐不可行,個(gè)人整理了下并且測(cè)試通過,,自己做個(gè)記錄幫助別人或者自己吧,。
2思想:session設(shè)置狀態(tài),,全局ajax進(jìn)行狀態(tài)的設(shè)置和更改進(jìn)行頁面的條狀,后臺(tái)需要進(jìn)行XMLHttpRequest的攔截
自己實(shí)現(xiàn)的方式貼上源代碼
if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); response.setDateHeader("Expires", 0); response.setHeader("sessionstatus", "timeout");
在js的代碼里面進(jìn)行跳轉(zhuǎn)
contentType:"application/x-www-form-urlencoded;charset=utf-8", complete:function(XMLHttpRequest,textStatus){ //通過XMLHttpRequest取得響應(yīng)頭,,sessionstatus,, var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); if(sessionstatus=="timeout"){ // alert("登錄超時(shí),請(qǐng)重新登錄!"); //如果超時(shí)就處理 ,,指定要跳轉(zhuǎn)的頁面 window.location.replace(rootPath + "/jsp/admin/login.jsp");
好了這樣就可以進(jìn)行設(shè)置狀態(tài)和進(jìn)行跳轉(zhuǎn)了,。
|