之前写过一个vue的路由守卫和axios的拦截器,但是会有一些报错,一直没解决,今天解决了,记录一下
报错版本
报错信息
配置请求拦截器的时候,添加请求头时,不能直接进行修改,不然就会修改不成功,而且一直报错,所以复制一个对象,通过复制的对象进行修改。
import axios from 'axios';
Vue.prototype.$axios = axios;
Vue.config.productionTip = false;
axios.defaults.baseURL = '';
// 添加请求拦截器
axios.interceptors.request.use((config) => {
// 请求之前看看有没有token。如果有,则以请求头的方式进行穿的
const token = window.sessionStorage.getItem('token');
if (token) {
// 设置请求头,将token携带
const obj = config;
obj.headers['x-client-token'] = token;
}
return config;
}, error => (
// 请求错误
Promise.reject(error)
));
// 响应拦截器
axios.interceptors.response.use((response) => {
window.console.log(response);
return response;
}, error => (
Promise.reject(error)
));
这样就可以了,奥利给!!!