axios的响应拦截器

2025-03-17 0 26

《axios的响应》

在使用axios进行网络请求时,我们经常会遇到需要对响应进行统一处理的情况,如全局错误处理、响应数据格式化等。解决这一问题的一个有效方案就是使用axios的响应。

一、基本响应的使用

我们可以直接在创建axios实例或者引入axios之后添加响应。代码如下:

javascript
import axios from 'axios';</p>

<p>// 添加响应
axios.interceptors.response.use(response => {
    // 对响应数据做点什么
    return response;
}, error => {
    // 对响应错误做点什么
    return Promise.reject(error);
});

在这个基本的用法中,在use方法的个参数是一个函数,当请求成功响应时会执行这个函数,并且可以对response进行操作,例如只返回响应中的data部分:

javascript
axios.interceptors.response.use(response => {
return response.data;
}, error => {
return Promise.reject(error);
});

二、基于不同状态码的处理

如果想要根据不同的HTTP状态码进行不同的处理,可以在响应中判断response.status

javascript
axios.interceptors.response.use(response => {
if (response.status === 200) {
// 处理200状态码的逻辑,比如可能对某些特殊格式的数据再加工
return response.data;
} else {
// 可以根据其他状态码做相应处理
return response;
}
}, error => {
if (error.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内
switch (error.response.status) {
case 401:
// 处理401未授权的情况,如跳转到登录页面
break;
case 403:
// 处理403禁止访问的情况
break;
case 404:
// 处理404资源未找到的情况
break;
case 500:
// 处理服务器内部错误的情况
break;
default:
// 其他错误处理
}
}
return Promise.reject(error);
});

三、移除响应

有时候我们可能需要移除某个响应。当我们调用axios.interceptors.response.use时它会返回一个标识符,可以通过这个标识符来移除。

javascript
const myInterceptor = axios.interceptors.response.use(response => {
    return response.data;
}, error => {
    return Promise.reject(error);
});</p>

<p>// 移除
axios.interceptors.response.eject(myInterceptor);

通过以上几种思路,我们可以根据实际项目需求灵活地使用axios的响应,从而实现对响应的有效处理,提高代码的可维护性和项目的稳定性。

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载