import axios from 'axios'
import router from '../router'
import bus from '@/bus'
const newAxios = axios.create({
baseURL: 'http://localhost:3000/api',
timeout: 5000
})
/*
我们平时在组件中使用的this.$router 实际上就是 new VueRouter()
*/
newAxios.interceptors.request.use((config) => {
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = "Bearer " + token
}
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
newAxios.interceptors.response.use((response) => {
// 对响应数据做点什么
if (response.data.res_code === 401) {
// 删除localStorage中的user
localStorage.removeItem('user')
bus.$emit('removeUser')
// 跳转到登录页面
router.push('/login')
}
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
export default newAxios
vue请求拦截&响应拦截
最新推荐文章于 2022-12-09 11:23:23 发布