其实很简单,只需要在main.js中加入全局请求配置
Axios.defaults.headers.common['Authorization'] = localStorage.getItem('token') //请求头里加入token
然后添加请求拦截器
// 添加请求拦截器
Axios.interceptors.request.use(config => {
// 在发送请求之前做些什么
//判断是否存在token,如果存在将每个页面header都添加token
if (localStorage.getItem('token')) {
config.headers.common['Authorization'] = localStorage.getItem('token')
}
return config;
}, error => {
// 对请求错误做些什么
return Promise.reject(error);
});
// http response 拦截器
Axios.interceptors.response.use(
response => {
return response;
},
error => {
if (error.response) {
switch (error.response.status) {
case 401:
case 500:
localStorage.setItem('token', null);
router.replace({
path: '/',
query: { redirect: router.currentRoute.fullPath }//登录成功后跳入浏览的当前页面
})
}
}
return Promise.reject(error.response.data)
});
搞定了