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;
相关推荐
咕噜企业分发小米几秒前
腾讯云在多云管理工具上如何实现合规性要求?
java·云计算·腾讯云
Henry Zhu1238 分钟前
Qt Model/View架构详解(五):综合实战项目
开发语言·qt·架构
孞㐑¥10 分钟前
算法—滑动窗口
开发语言·c++·经验分享·笔记·算法
仰泳之鹅11 分钟前
【杂谈】使用Edge浏览器下载文件显示“Microsoft Defender SmartScreen 已阻止此不安全文件”的解决方法
前端·edge
AI-小柒19 分钟前
从零入门大语言模型(LLM):系统学习路线与实践指南
大数据·开发语言·人工智能·学习·信息可视化·语言模型·自然语言处理
万邦科技Lafite22 分钟前
小红书评论数据一键获取,item_reviewAPI接口讲解
大数据·前端·数据库·chrome·电商开放平台
invicinble22 分钟前
关于对后端开发工程师,在项目层面的基本需求与进阶方向
java
hhy_smile24 分钟前
Python environment and installation
开发语言·python
懒鸟一枚25 分钟前
Java17新特性详解
java
戌中横27 分钟前
JavaScript 对象
java·开发语言·javascript