uni-app經過判斷接口403跳轉登陸頁面的問題

需求: 當向後端請求接口返回 403 的時候,直接跳到登陸頁面讓用戶登陸vue

實現方案: 在請求結束後攔截器中判斷,若是是 403 就跳轉後端

遇到難題: 一級頁面(個人) onShow() 中有接口請求,用戶在沒有登陸的狀態下,來到個人頁面, 接口報錯返回403 ,觸發咱們在攔截器寫好的方法,跳轉到登陸頁面, app

    出現怪異現象:1.進入到個人頁面, 會連續跳轉2次到登陸頁面(由於個人頁面有兩個請求都返回 403,因此會連續跳兩次)函數

           2.跳轉到登陸頁面後, 點擊導航欄返回後, 接口會再次請求報錯返回403(由於onShow的方法) ,觸發咱們在攔截器寫好的方法,再次跳轉到登陸頁面(死循環)spa

解決方法:blog

處理怪異現象1:接口

1.1在跳轉到登陸頁面以前向本地存儲中獲取 jump (獲得空)事件

1.2if 判斷進入到跳轉登陸頁的方法. (注意延遲300跳轉)登錄

1.3同時再爲本地存儲 jump 設一個值.(這樣作就能夠避免 300毫秒之內的接口即便報403,也不會進入到if(!jump)函數體中,也就不會出現連續跳轉了)循環

1.4在登陸頁面將本地存儲 jump 移除(別忘記了,否則以後其餘接口報 403 就不會進入函數體了,不會跳轉了)

http.js文件

login.vue 文件

 

 處理怪異現象2:

 

 

 咱們在登陸頁面中,使用uni-app的 onBackPress 事件來監聽用戶點擊返回鍵

若是是從其餘頁面來的,點擊返回鍵執行back方法

 

 back方法:

相關文章
相關標籤/搜索