axios 请求拦截,如何判断是网络超时还是接口报错
时间: 2024-03-06 22:50:29 浏览: 244
在 axios 请求拦截器中,可以通过判断响应状态码来判断接口是否报错。通常情况下,状态码为 2xx 表示请求成功,状态码为 4xx 或 5xx 表示请求失败,其中 4xx 表示客户端错误,5xx 表示服务器错误。
对于网络超时的情况,可以通过捕获请求异常来进行处理。在 axios 的 catch 回调函数中,可以判断异常类型是否为超时异常,如果是超时异常,则可以提示用户网络超时,否则就是接口报错。
例如:
```javascript
axios.interceptors.response.use(response => {
// 判断响应状态码
if (response.status >= 200 && response.status < 300) {
return response;
} else {
// 接口报错
const error = new Error(response.statusText);
error.response = response;
throw error;
}
}, error => {
// 判断异常类型
if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
// 网络超时
console.log('网络超时');
} else {
// 其他异常
console.log('接口报错');
}
return Promise.reject(error);
});
```
阅读全文