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;
相关推荐
爱睡觉的王宇昊5 分钟前
单体架构详细解析:从概念到实践--购物网站搭建
java·spring boot·架构·团队开发·个人开发·敏捷流程
Bruce_kaizy7 分钟前
c++单调数据结构————单调栈,单调队列
开发语言·数据结构·c++
不思念一个荒废的名字11 分钟前
【黑马JavaWeb+AI知识梳理】Web后端开发04-登录认证
java·后端
阿坤带你走近大数据12 分钟前
Python基础知识-数据结构篇
开发语言·数据结构·python
froginwe1112 分钟前
AJAX 实时搜索:技术原理与实现方法
开发语言
流浪法师1212 分钟前
MyPhishing-Web:AI 驱动的钓鱼邮件检测可视化平台
前端·人工智能
发光小北17 分钟前
SG-CAN (FD) NET-210(双通道 CAN (FD) 转以太网网关)特点与功能介绍
开发语言·网络·php
写代码的jiang17 分钟前
【无标题】实战:Vue3 + Element Plus 实现树形选择器全量预加载与层级控制
前端·javascript·vue.js
java1234_小锋20 分钟前
Redis到底支不支持事务啊?
java·数据库·redis
晚烛20 分钟前
实战前瞻:构建高可靠、低延迟的 Flutter + OpenHarmony 智慧交通出行平台
前端·javascript·flutter