// 引入axios
import axios from 'axios'
import store from '../store'
// 创建一个axios的实例 请求的真整地址就会拼接到baseURL后面
/*
* 例如,如果我们在其他地方使用了我们export default的instance 的时候,所有的客户端请求都回先经过欧文们
*自定义的请求拦截器
* 所有的接口返回值都会先经过我们自定义的返回拦截器
* */
const instance = axios.create({
baseURL: '封装的请求的地址',
// 请求超时的时间
timeout: 5000
})
// 请求拦截器
instance.interceptors.request.use(
config => {
// 可以先判断store里面的token是否有值,要是没有token的话就直接请求拦截
if (store.state.token) {
config.headers.token = store.state.token
}
return config
},
err => {
console.log('err请求拦截报错', err)
return Promise.reject(err)
}
)
// 请求返回的拦截,所有的请求安抚你会的数据都会先经过这个方法。
instance.interceptors.response.use(
response => {
// response 就是接口返回的值
const res = response.data
// 可以自定义返回的code的值,对于不同的code,做出不同的响应拦截
// 我们可以自定定义返
if (res.code === 404) {
// 这个是后我们就可以根据后台返回的404去做页面的跳转
// 比如说我们可以跳转到我们定义好的404界面
} else {
return res
}
},
err => {
// 拦截错误
console.log('err', err)
return Promise.reject(err)
}
)
export default instance
自定义的请求拦截
最新推荐文章于 2021-09-03 11:12:43 发布