Vue作為一款流行的前端框架,其提供了豐富的功能和強大的性能,成為了開發者的首選技術之一。而其中的路由攔截是Vue應用不可或缺的功能之一。在Vue中,我們可以通過攔截器來實現對路由的攔截和權限控制。然而,在使用Vue進行開發時,有時候會出現401錯誤,這意味著用戶沒有權限訪問該頁面或接口。為了解決這個問題,我們需要對Vue的攔截器進行調整。
import axios from 'axios'
import router from '@/router'
// 請求攔截器
axios.interceptors.request.use(config =>{
// todo: 在請求頭中添加憑證信息
return config
}, error =>{
return Promise.reject(error)
})
// 響應攔截器
axios.interceptors.response.use(response =>{
return response
}, error =>{
const { status } = error.response
if (status === 401) {
// todo: 重定向到登錄頁
router.replace('/login')
}
return Promise.reject(error)
})
在上面的代碼中,我們可以看到使用了Axios作為Vue的HTTP請求庫。在請求攔截器中,我們可以實現在請求頭中添加憑證信息,例如Token,以保證用戶的身份認證;而在響應攔截器中,我們可以通過判斷HTTP狀態碼來實現對錯誤的處理。當我們在服務器端判定用戶沒有該頁面或接口的訪問權限時,就可以返回HTTP狀態碼為401,這時候我們便可以在攔截器中重定向到登陸頁面,以實現權限控制。