axios请求拦截和响应拦截

Axios的请求拦截器和响应拦截器都是非常有用的工具,它们可以在请求发送到服务器之前或响应返回到客户端之前进行干预。

请求拦截器:

请求拦截器是在发送请求之前执行的,可以在请求拦截器中对请求进行一些预处理,比如设置统一的请求头、添加请求体验证等。在axios中,可以通过axios.interceptors.request.use()方法来定义请求拦截器。例如:

axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});

在上面的例子中,第一个函数是处理成功的请求,第二个函数是处理错误的请求。可以在第一个函数中添加一些公共的请求头,或者对请求体进行一些验证。

响应拦截器:

响应拦截器是在服务器响应返回到客户端之前执行的,可以在响应拦截器中对响应进行一些处理,比如根据响应的状态码进行一些特殊处理。在axios中,可以通过axios.interceptors.response.use()方法来定义响应拦截器。例如:

axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});

在上面的例子中,第一个函数是处理成功的响应,第二个函数是处理错误的响应。可以在第一个函数中对响应数据进行一些处理,比如统一的数据格式化等。

需要注意的是,每个请求拦截器和响应拦截器都有两个配置项,一个是成功配置,一个是错误配置。成功配置是在请求成功或响应成功时执行的,错误配置是在请求或响应失败时执行的。可以根据需要进行相应的配置。

请求拦截:

 const instance =axios.create({baseURL:'xxx',timeout:5000})console.log(instance);instance.interceptors.request.use(config=>{console.log(config);//统一携带tokenif(config.url!='/user.login'){config.headers['Authorization'] = localStorage.getItem('token')}return config},error=>{return Promise.reject(error)})

响应拦截器:

instance.interceptors.response.use(response=>{return response.data},error=>{return Promise.reject(error)})

封装get方法:

function get (url,params){return axios.get(url,{params})}

封装post方法:

function post(){return axios.post(url,data)}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将用户有过行为的item用list形式记录下来,另外如何计算list里的个数

导语: 最近做项目,发现有些语法想一想是知道,但实际操作起来跟想的情况不一样哈哈。不是遇见bug就是输出的结果不是自己想要的,CSDN跟知乎找了很多没怎么解决,后面多摸索多实操终于解决! test_data[item_…

数据结构-05-跳表SkipList

1-什么是跳表 跳表SkipList是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为 O(logN)(大多数情况下,因为是实现上是概率问题),因为其性能匹敌红黑树且实现较为简单…

msvcr110.dll丢失的解决方法有哪些-常见方法教程

我们在日常使用电脑中经常遇到各种问题,比如系统文件丢失是最常见的,其中msvcr110.dll丢失也是非常常见的问题,那么msvcr110.dll文件为什么会丢失,丢失对电脑有什么影响呢,丢失了有什么解决方法?今天小编就…

Synchronized 优化

目录 前言 重点 一、 轻量级锁 二、锁膨胀 三、重量锁 四、偏向锁 五、其他优化 我的其他博客 前言 Java synchronized 是一种机制,可以保证多个线程在访问共享资源时的同步性。synchronized 关键字可以用于方法或代码块上,当一个线程获取了这个对…

【动态规划】03斐波那契数列模型_最小花费爬楼梯_C++(easy1)

题目链接:leetcode使用最小花费爬楼梯 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求达到楼梯顶部的最低花费. 由题可得: cost[i] 是从楼梯第 i 个…

第6章:知识建模:概述、方法、实例

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

java--LinkedHashSet集合的底层原理和TreeSet集合

1.LinkedHashSet底层原理 ①依然是基于哈希表(数组、链表、红黑树)实现的 ②但是,它的每个元素都额外的多了一个双链表的机制记录它前后元素的位置。 2.TreeSet ①特点:不重复、无索引、可排序(默认升序排序,按照元素的大小,由…

Android-Framework 异常重启原因log检索之关键字搜索

ap层重启原因记录 "bootstat: Canonical boot reason:" kernel层重启原因 "Power-on reason:" ap层crash原因 "beginning of crash" ap层system_server挂掉后重启 "androidboot.modespecial" "special-systemserver-di…

《微信小程序开发从入门到实战》学习四十八

4.5 实现投票小程序服务端功能 前面开发投票小程序时还有一些服务端的功能没有实现,当时以//todo标注,以测试数据完成基本功能。现在学习了云开发技术,就可以实现投票小程序的服务端功能了 4.5.1 完成创建投票功能 首先,在app.…

Nacos热更新(动态获取配置)

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️&#…

el-date-picker 限制选择范围最大为一年,设置快捷选项,设置默认时间

el-date-picker 限制选择范围最大为一年&#xff1a; 主要代码为&#xff1a;:picker-options"pickerOptions" 以及 blur"pickerBlur" <el-date-pickerv-model"transactionTime"type"daterange"style"width: 200px"size…

盒马补贴量价-2021KDD

概述&#xff1a; 电商商品定价三个关键问题&#xff1a; 在只有观测数据的时候&#xff0c;怎么构建价格弹性&#xff0c;现在来看这就是一个反事实推断的问题&#xff0c;不仅是如何做的问题&#xff0c;还有如何评估的问题。长周期的规划决策问题怎么建模 & 求解&#…

包管理工具npm与yarn

1.npm 1.1 安装 安装node后自带了npm 2.2 初始化package.json npm init 1.3 安装包 单个包&#xff1a;npm install less或npm i less 所有包&#xff1a;npm installnpm i 1.4 删除包 npm remove less&#xff0c;npm r less或npm uninstall less 1.5 配置别名 pack…

big.js常用方法

安装big.js npm install --save big.js引入插件 import Big from big.js创建Big number数据 const number new Big(.1) 或者 const number Big(.1)判断数据相等&#xff0c;比较值的大小 const number1 new Big(.3) const number2 Big(.3) number1.eq(number2) // tru…

从零开始学UniApp微信小程序开发:头部适配技巧让你事半功倍!

在 UniApp 中&#xff0c;在微信小程序开发中&#xff0c;头部适配可以通过修改 pages.json 中的 navigationStyle 配置项来实现&#xff0c;具体操作步骤如下&#xff1a; 1.进入 pages.json 文件 在 UniApp 项目的根目录中找到 pages.json 文件&#xff0c;打开该文件。 2…

Win11专业版,eNSP启动失败,错误代码40 解决方法

微软Win11系统默认开启的 Virtualization-based Security &#xff08;VBS&#xff09;“基于虚拟化的安全性”会导致游戏、跑分性能下降。VBS 基于虚拟化的安全性&#xff0c;通常称为内核隔离。使用硬件虚拟化在内存中创建安全区域&#xff0c;为其他安全功能提供了一个安全平…

git相关操作和命令

只发布某个节点的分支代码&#xff08;创建本地分支&#xff0c;切换到那个节点的代码&#xff09; 创建本地分支 git checkout -b dev-hyyj1212 origin/dev-hyyj 重置代码到d76fd1fa这个节点的代码 git reset --hard d76fd1fa -------------------------------------------…

python——第十六天

面向对象——继承 class RichMan(object): def __init__(self): self.money 1000000000 self.company "阿里巴巴" self.__secretary "小蜜" def speak(self): print(f"我对钱不感兴趣&#xff0c;我最后悔的事&#xff0c;就是创建了{self.company…

Appilied energy论文复现:含多类型充电桩的电动汽车充电站优化配置方法程序代码!

本程序参考Applied energy论文《Optimal planning of electric vehicle charging stations comprising multi-types of charging facilities》&#xff0c;文中主要对多类型充电桩的电动汽车充电站进行优化配置&#xff0c;程序较为简单和基础&#xff0c;具有较强的可扩展性和…

Python实现软件中英文对照表功能

一、通过字典实现 import locale# 定义中英文对照的字典 translation_dict {account: {en: Account, zh: 账号},password: {en: Password, zh: 密码},logon: {en: Logon, zh: 登录}# 其他需要翻译的内容... }def get_translation_dict():"""根据系统语言选择对…