axios二次封装配置请求拦截器和响应拦截器

我们为什么要对axios进行二次封装?

因为我们可以使用请求拦截器在发送请求之前处理一些业务,使用响应拦截器在服务器数据返回后处理一些业务。

我们通常创建一个api文件夹,再创建一个request.js文件,用于存放重写后的axios。

javascript 复制代码
// 引入axios
import axios from "axios";

// 利用axios对象的create 方法去创建一个axios实例,我们可以对其进行配置
const requestObj = axios.create({
    // 基础路径:一般我们发送请求时都会出现api
    baseURL: "/api",
    // 请求超时的时间
    timeout: 5000
});

// 请求拦截器:在请求发送之前,请求拦截器检测到,也可以在请求发出去之前做一些事情
requestObj.interceptors.request.use((config) => {
    // config:配置对象,其中有headers请求头
    return config;
})

// 响应拦截器
// 有成功请求函数和失败回调函数
requestObj.interceptors.response.use((res) => {
    // 成功回调函数:直接返回请求的数据
    return res.data;
}, (error) => {
    // 失败回调函数:返回一个Promise对象
    return Promise.reject(new Error('faile'));
})

export default requestObj;
相关推荐
ml魔力信息7 分钟前
一枚指纹,开启工业IoT设备安全与权限分级实践
java·物联网·安全
BBB努力学习程序设计11 分钟前
CSS Sprite技术:用“雪碧图”提升网站性能的魔法
前端·html
Zyx200715 分钟前
深拷贝:JavaScript 中对象复制的终极解法
javascript
BBB努力学习程序设计16 分钟前
CSS3渐变:用代码描绘色彩的流动之美
前端·html
暴富的Tdy22 分钟前
【基于 WangEditor v5 + Vue2 封装 CSDN 风格富文本组件】
vue.js·wangeditor·富文本
会飞的小蛮猪23 分钟前
SkyWalking运维之路(Java探针接入)
java·运维·经验分享·容器·skywalking
冰暮流星26 分钟前
css之动画
前端·css
通域32 分钟前
解决启动IDEA后CPU 及内存占用过高配置调整
java·ide·intellij-idea
earthzhang202142 分钟前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
蕓晨1 小时前
auto 自动类型推导以及注意事项
开发语言·c++·算法