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;
相关推荐
朔北之忘 Clancy17 小时前
2020 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
晚风予星17 小时前
简记 | 一个基于 AntD 的高效 useDrawer Hooks
前端·react.js·设计
行百里er17 小时前
代码跑得慢?让Spring的StopWatch告诉你真相!
java·后端·github
csbysj202017 小时前
组合实体模式
开发语言
栗子叶17 小时前
网页接收服务端消息的几种方式
前端·websocket·http·通信
又是忙碌的一天17 小时前
SpringMVC响应
java·服务器·数据库
菩提小狗17 小时前
Sqli-Labs Less-3 靶场完整解题流程解析-豆包生成
前端·css·less
澄江静如练_17 小时前
优惠券提示文案表单项(原生div写的)
前端·javascript·vue.js
万物皆字节17 小时前
Spring Cloud Gateway 启动流程源码分析
java·开发语言·spring boot
问水っ17 小时前
Qt Creator快速入门 第三版 第16-7章 其他内容
开发语言·qt