本地存儲(chǔ)必須要有token才能進(jìn)入某個(gè)頁(yè)面(比如購(gòu)物車頁(yè)面),否則會(huì)被攔截。
請(qǐng)求服務(wù)器數(shù)據(jù)的request.js部分代碼:
// 請(qǐng)求攔截(interceptors: 中文為攔截器)
instance.interceptors.request.use(config=>{
let token=localStorage.getItem('token')
if(token){
config.headers.token=token; //請(qǐng)求頭名稱由接口文檔提供
}
return config;
}, err=>{
return Promise.reject(err)
})
// 響應(yīng)攔截
instance.interceptors.response.use(res=>{
return res.data;
}, err=>{
return Promise.reject(err)
})
路由js部分代碼
//路由攔截
router.beforeEach((to, from, next) => {
//去購(gòu)物車頁(yè)面必須有token
let token = localStorage.getItem("token");
if (to.path == "/cart") { //跳轉(zhuǎn)到購(gòu)物車頁(yè)面
if (token) {
next();
} else {
Vue.prototype.$toast("請(qǐng)先登錄");//$toast是vantui框架里的組件
setTimeout(() => {
next("/user"); //下一個(gè)頁(yè)面是用戶登錄頁(yè)面
}, 2000);
}
return;
}
//這個(gè)next適配所有路由
next();
});