[代码笔记]VUE路由根据返回状态判断添加响应拦截器
生活随笔
收集整理的這篇文章主要介紹了
[代码笔记]VUE路由根据返回状态判断添加响应拦截器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//返回狀態判斷(添加響應攔截器)
Axios.interceptors.response.use(res => {//對響應數據做些事if (res.data && !res.data.success) {Message({// 餓了么的消息彈窗組件,類似toastshowClose: true,message: res.data.error.message.message? res.data.error.message.message: res.data.error.message,type: "error"});return Promise.reject(res.data.error.message);}return res;},error => {// 用戶登錄的時候會拿到一個基礎信息,比如用戶名,token,過期時間戳// 直接丟localStorage或者sessionStorageif (!window.localStorage.getItem("loginUserBaseInfo")) {// 若是接口訪問的時候沒有發現有鑒權的基礎信息,直接返回登錄頁
router.push({path: "/login"});} else {// 若是有基礎信息的情況下,判斷時間戳和當前的時間,若是當前的時間大于服務器過期的時間// 乖乖的返回去登錄頁重新登錄let lifeTime =JSON.parse(window.localStorage.getItem("loginUserBaseInfo")).lifeTime *1000;let nowTime = new Date().getTime(); // 當前時間的時間戳
console.log(nowTime, lifeTime);console.log(nowTime > lifeTime);if (nowTime > lifeTime) {Message({showClose: true,message: "登錄狀態信息過期,請重新登錄",type: "error"});router.push({path: "/login"});} else {// 下面是接口回調的satus ,因為我做了一些錯誤頁面,所以都會指向對應的報錯頁面if (error.response.status === 403) {router.push({path: "/error/403"});}if (error.response.status === 500) {router.push({path: "/error/500"});}if (error.response.status === 502) {router.push({path: "/error/502"});}if (error.response.status === 404) {router.push({path: "/error/404"});}}}// 返回 response 里的錯誤信息let errorInfo = error.data.error ? error.data.error.message : error.data;return Promise.reject(errorInfo);}
);
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的[代码笔记]VUE路由根据返回状态判断添加响应拦截器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP各个组件或工具的安装与使用
- 下一篇: 01.05第六周周总结