前言:
在試着用vue寫一個登錄頁面,已經調試好了,登錄成功后,跳轉到主頁面。但是加了攔截器后,不會跳到主頁面
this.$axios.post(domain.publicUrl+'/login', this.$qs.stringify(data1)).then(res=>{ if(res.data.code===200){ this.$router.replace('/main'), window.localStorage["token"]=JSON.stringify(res.data.data.token); }else { this.$message({ type:"info", message: res.data.msg }); } });
二、在這種情況下登錄功能,跳轉都正常,后來加入了攔截器,代碼如下:
router.beforeEach((to, from, next) => { if (to.meta.requireAuth) { // 判斷該路由是否需要登錄權限 if (localStorage.token) { // 獲取當前的token是否存在 console.log("token存在"); next(); } else { console.log("token不存在"); next({ path: '/login', // 將跳轉的路由path作為參數,登錄成功后跳轉到該路由 query: {redirect: to.fullPath} }) return; } }
加入攔截器后,攔截功能正常,跳轉功能不正常了,一直都在登錄界面,登錄成功,token也寫入緩存了,但是就是不會跳轉,看攔截器代碼也沒問題,后來看登錄的代碼才發現了問題所在。我的跳轉的代碼是在寫token之前的。所以跳轉到main頁面的時候,沒有token就又返回到login頁面,然后一直循環了。查了半天。哈哈哈 。。。 十一假期要結束了呀,沒出去玩,快點上班吧。