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;
相关推荐
AIBox365几秒前
codex api 配置教程:安装、鉴权、Windows 环境变量
javascript·人工智能·windows·gpt
无籽西瓜a1 分钟前
【西瓜带你学设计模式 | 第十五期 - 策略模式】策略模式 —— 算法封装与动态替换实现、优缺点与适用场景
java·后端·设计模式·软件工程·策略模式
珍朱(珠)奶茶4 分钟前
Spring Boot3整合FreeMark、itextpdf 5/7 实现pdf文件导出及注意问题
java·spring boot·后端·pdf·itextpdf
Reisentyan6 分钟前
[vue3]HTML Learn Data Day 9
前端·vue.js·html
llm大模型算法工程师weng9 分钟前
Python拉取视频流的性能优化实战
开发语言·python·性能优化
大数据新鸟10 分钟前
微服务之Spring Cloud LoadBalancer
java·spring cloud·微服务
小程故事多_8010 分钟前
破局 AI 编码乱象:SDD 规范驱动 + OpenSpec+SuperPowers 双框架,让 AI 写对每一行可追溯代码
开发语言·人工智能·aigc·ai编程
杜子不疼.11 分钟前
AI Agent 智能体开发入门:AutoGen 多智能体协作实战教程
java·人工智能·spring
樽酒ﻬق11 分钟前
构筑容器化基石:Docker 稳定版本抉择、极速安装与配置全解
java·docker·运维开发
kaico201812 分钟前
面向对象和高级特性
开发语言·python