// 请求前的拦截器
axios.interceptors.request.use(
config => {
// 发请前前做一些处理
// get请求清除缓存
if (config.method === 'get') {
config.params = {
_t: new Date().getTime().toString(),
...config.params
};
}
// 如果本地有token,给它加上请求头
const tokenStr = localStorage.getItem('tokenStr')
if (tokenStr) {
config.headers.Authorization = `Bearer ${tokenStr}`
}
return config;
},
error => {
return Promise.reject(error);
}
);
// 请求完成后的拦截器
axios.interceptors.response.use(
response => {
// 返回响应时的一些处理
if (response.data.code !== 'SUCCESS') {
console.error('错误', response);
Modal.error({
content: response.data.message || '系统出错,请联系管理员!'
})
return Promise.reject(response); // 会传到catch中
}
// 一般axios会嵌套一层data 可以在项目中看情况返回
return response.data
},
error => {
// 响应异常时处理(404问题在这儿处理)
Modal.error({
content: '网络出错,稍后重试!'
})
// /抛出错误, 谁调用它发请求就给谁抛错误
return Promise.reject(error);
}
);
请求拦截器和响应拦截器的处理 axios.interceptors.request、axios.interceptors.response
于 2023-04-07 00:03:47 首次发布