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;
相关推荐
专注VB编程开发20年4 小时前
EDGE估计没有switch到frame的做法
前端·edge·vba
康小庄4 小时前
通过NGINX实现将小程序HTTPS请求转为内部HTTP请求
java·spring boot·nginx·spring·http·小程序
Swift社区4 小时前
Date / LocalDateTime 转换错误,一次踩坑后的完整复盘
java·spring boot·spring
知乎的哥廷根数学学派4 小时前
基于物理约束指数退化与Hertz接触理论的滚动轴承智能退化趋势分析(Pytorch)
开发语言·人工智能·pytorch·python·深度学习·算法·机器学习
长路归期无望4 小时前
一步步入门机器人【Arduino基础】
开发语言·经验分享·笔记·学习·机器人
源文雨4 小时前
批量递归转换 mp4 为 flac/m4a 的 bash 脚本
开发语言·ffmpeg·bash·转码·mp4·m4a·flac
Seven974 小时前
PriorityQueue的秘密:堆结构的高效应用与实现原理
java
不绝1914 小时前
C#进阶:协程与事件
开发语言·c#
_oP_i4 小时前
Chrome浏览器自动下载的AI模型文件
前端·chrome
feifeigo1234 小时前
斜激波参数计算MATLAB程序
开发语言·matlab