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;
相关推荐
jolimark1 分钟前
Spring Boot 集成 Kettle
java·spring boot·后端
云栖笑笑生3 分钟前
Java中变量的定义及注意事项
java
牛马1115 分钟前
Flutter CustomPaint
开发语言·前端·javascript
玛卡巴卡ldf6 分钟前
【LeetCode 手撕算法】(子串) 560-和为 K 的子数组
java·数据结构·算法·leetcode
wuxinyan12310 分钟前
Java面试题45:一文深入了解Spring 事务原理
java·spring·面试·事务
重庆兔巴哥14 分钟前
Java环境变量配置不成功,会有什么症状?
java·开发语言
大黄说说15 分钟前
不可变数据:函数式编程的基石与双刃剑
开发语言
炽烈小老头15 分钟前
函数式编程范式(三)
前端·typescript
不只会拍照的程序猿17 分钟前
《嵌入式AI筑基笔记02:Python数据类型02,从C的“硬核”到Python的“包容”》
开发语言·笔记·python
无限进步_17 分钟前
深入解析list:一个完整的C++双向链表实现
开发语言·c++·git·链表·github·list·visual studio