ajax 如何在登入超時時跳轉登入頁

2021-10-14 20:00:47 字數 1367 閱讀 2277

業務需求:在登入過期時,我們需要將頁面跳轉到登入頁,一般的非ajax請求到後端,我們後端直接重定向到登入頁就可以了,由於ajax比較特殊,它由請求服務端之後還有響應客戶端,如果我們後端直接重定向操作,前端只會當json字串處理了。無法跳轉到登入頁。

這時候就需要前後端共同實現這一功能。

1. 後端***,如果檢測到登入超時,先獲取請求是否是ajax請求。如果是ajax請求,就讓當前這個請求重定向到乙個controller的函式上,return乙個json的登入過期的標識,然後在由前端ajax的響應***,判斷返回值是否有登入過期的標識,存在則使用windows物件強制跳轉登入頁。

/**

* 這裡並沒有使用ajax響應***,經過測試ajax所有的一系列的響應之後出發的函式都會在success 之後觸發,後來發現datafilter這個全域性ajax引數介於請求***和響應***之間,則符合要求。

* 注意: 使用datafilter 如果登入超時需要呼叫abort()方法;《終止當前請求》,它將不會執行datafilter之後就不會在去執行success 和響應攔截和終止****/$

(function()

else

}else}}

)})

後端如何判斷請求是ajax 請求的兩種方式:

1. 前端每次需要ajax請求時在路徑後面加上乙個字尾名,這樣後端擷取路徑字尾名就知道是否是ajax請求了

2. 後端通過**實現

1.ajaxstart(全域性事件)

2.beforesend

3.ajaxsend(全域性事件)

4. datafilter

5.success

6.ajaxsuccess(全域性事件)

7.error

8.ajaxerror (全域性事件)

9.complete

10.ajaxcomplete(全域性事件)

11.ajaxstop(全域性事件)

先執行success,再執行error,最後始終執行complete

跳轉登入功能

引入頭頁面 public string head 退出功能 實現登入功能 進入到登入頁面 public string login 跳轉主頁面的post方法 將list資料儲存到request物件中 request.setattribute list list mai.jsp forward requ...

iframe 裡頁面超時 跳轉登入頁問題

ie 中為 frames id 其他為document.getelementbyid id contentwindow contentwindow 屬性是指指定的frame或者iframe所在的window物件 在ie中iframe或者frame的contentwindow屬性 可以省略,但在fir...

JSoup攜帶cookies連續跳轉登入多個介面

專案需求 需要先登入進入到華北電力大學內網,然後在內網介面進入到教務系統登入介面進行第二次登入,最終成功進入到教務系統介面,然後進行各種查詢操作。其主要步驟可以描述為 在華北電力大學內網介面我們利用jsoup模擬登入進去,獲得其cookies cookies innet 我們攜帶cookies in...