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;
相关推荐
CC.GG12 分钟前
【C++】哈希表的实现
java·c++·散列表
玄同76515 分钟前
Python 数据类型:LLM 语料与 API 参数的底层处理逻辑
开发语言·人工智能·python·自然语言处理·llm·nlp·知识图谱
Slow菜鸟20 分钟前
Java基础 | 布隆过滤器
java·开发语言
比奇堡派星星26 分钟前
Linux Hotplug 机制详解
linux·开发语言·驱动开发
VcB之殇1 小时前
popstate监听浏览器的前进后退事件
前端·javascript·vue.js
宁雨桥1 小时前
Vue组件初始化时序与异步资源加载的竞态问题实战解析
前端·javascript·vue.js
molaifeng1 小时前
像搭积木一样理解 Golang AST
开发语言·后端·golang
SystickInt1 小时前
C语言 UTC时间转化为北京时间
c语言·开发语言
黎雁·泠崖1 小时前
C 语言动态内存管理进阶:常见错误排查 + 经典笔试题深度解析
c语言·开发语言
xixixiLucky1 小时前
IDEA中MAVEN项目找依赖的快捷插件
java·maven·intellij-idea