在main.js中插入axios
import axios from 'axios'
axios.defaults.headers.common['token'] = store.state.token;
// 添加请求拦截器
axios.interceptors.request.use(config => {
// 在发送请求之前做些什么
//判断是否存在token,如果存在将每个页面header都添加token
if (store.state.token || localStorage.getItem('token')) {
config.headers.common['token'] = store.state.token
}
return config;
}, error => {
// 对请求错误做些什么
return Promise.reject(error);
});
// http response 拦截器
axios.interceptors.response.use(
response => {
return response;
},
error => {
if (error.response && store.state.token) {
switch (error.response.status) {
case 401:
store.commit('del_token');
alert('登陆过期,请重新登录')
router.replace({
path: '/',
query: { redirect: router.currentRoute.fullPath } //登录成功后跳入浏览的当前页面
})
}
}
return Promise.reject(error.response.data)
});