【ajax实战03】拦截器

一:axios拦截器

拦截器分类:

请求拦截器以及响应拦截器

拦截器作用:

在请求或响应被then或catch处理前拦截它们

二:请求拦截器

作用:

发起请求之前,调用一个配置函数,对请求参数进行设置。当有公共配置和设置时,统一设置在请求拦截器中

拦截器语法格式:

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

在管理系统中应用

设置每次发送axios请求时,都携带token。下面代码替代了每次axios请求在headers选项传递请求头参数的过程

axios.interceptors.request.use(function (config) {
  const token = localStorage.getItem('token')
  token && (config.headers.Authorization = `Bearer ${token}`)
  return config
}, function (error) {
  return Promise.reject(error)
})

三:响应拦截器

axios源码内会根据服务器返回的状态码,去对应的调用响应拦截器中成功的回调函数或者失败的回调函数

什么是响应拦截器

服务器返回的响应回到then/catch处理之前,触发的拦截函数,对响应结果统一处理

语法格式:

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });

在管理系统中应用

需求:假设当token值验证不通过时,重新回到登录页面

axios.interceptors.response.use(function (response) {

}, function (error) {
  if (error?.response?.status === 401) {
    alert('身份验证失败,请重新登录')
    localStorage.clear()
    location.href = '../login/index.html'
  }})```
 

四:优化axios响应结果

将axios封装响应成功的结果对象,转化成直接访问到对应的返回值对象
在这里插入图片描述
利用通过axios.then方法返回的result对象,如果要访问axios返回的数据对象,需要用result.data.data的方式才能访问到数据。因此可以通过响应拦截器中返回响应结果为成功后调用回调函数解决这一问题

axios.interceptors.response.use(function (response) {
  //response就是在axios回调函数传递的参数result对象
  //直接返回服务器的响应结果对象
  const result = response.data
  return result
})

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis案例

目录 一、配置文件1.数据与环境准备1.1 创建tb_brand表1.2 在Pojo中创建实体类Brand.java1.3 在test文件夹下的java中创建测试类1.4 安装MyBatisX插件 二、增删改查1. 查询 一、配置文件 1.数据与环境准备 1.1 创建tb_brand表 -- 删除tb_brand表 drop table if exists tb_bra…

什么是大模型?一文读懂大模型的基本概念

大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参…

【Qt】初识QtQt Creator

一.简述Qt 1.什么是Qt Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现…

Energy-based PINN在固体力学中的运用

简介 物理信息神经网络(Physic informed neural network,PINN)已经成为在有限差分、有限体积和有限元之后的另一种求解偏微分方程组的范式,受到学者们广泛关注。 在固体力学领域有两类不同的PINN: (1)PDE…

mac卡牌游戏:堆叠大陆 Stacklands for Mac 中文安装包

Stacklands 是一款轻松益智的堆叠游戏。玩家需要在游戏中不断堆叠不同形状和大小的方块,使它们尽可能地稳定地堆放在一起。游戏中有多种不同的关卡和挑战,玩家需要通过合理的堆叠方式来完成每个关卡。游戏画面简洁明快,操作简单直观&#xff…

跟我从零开始学C++(C++代码基础)5

引言 小伙伴们,在经过一些基础定义和指针,数组,函数的洗礼后,我相信大家肯定都已经对C编程有了新的认知,同时呢,坚持下来的小伙伴们肯定都是好样的,大家都是很棒的,现在我们来学一学…

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(二)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

Leetcode Hot100之矩阵

1. 矩阵置零 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 解题思路 题目要求进行原地更改,也就是不能使用额外的空间,因此我们可以使用第一行的元素来记录对应的…

【软件下载】Folx详细安装教程视频-Folx软件最新版下载

根据大数据调查表明Acceleration PRO下载:抽出多达10个流的故障能够显着提高下载速度。根据行业数据显示与iTunes PRO集成:通过将Folx集成到iTunes来下载歌曲和视频,能够在下载后立即自动添加到iTunes库。实际上我们可以这样讲通过代理下载&a…

Git 冲突处理指南:恢复 Git Reset

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

10个AI高考上岸朋友圈文案设计

高考是人生中的一个重要时刻,上岸后分享朋友圈的文案可以既表达喜悦,也可以展现对未来的期待。以下是10个不同风格的高考上岸朋友圈文案,供你参考: 1. **梦想成真版**: "十年磨一剑,今朝试锋芒。高…

After Effects 2024 mac/win版:创意视效,梦想起航

After Effects 2024是一款引领视效革命的专业软件,汇聚了创意与技术的精华。作为Adobe推出的全新版本,它以其强大的视频处理和动画创作能力,成为从事设计和视频特技的机构,如电视台、动画制作公司、个人后期制作工作室以及多媒体工…

【Linux】进程信号_2

文章目录 八、进程信号1. 信号 未完待续 八、进程信号 1. 信号 除了可以使用 kill 命令和键盘来生成信号,我们也可以使用系统调用来生成信号。 kill函数可以对指定进程发送指定信号。 使用方法: int main(int argc, char *argv[]) {if (argc ! 3) {c…

利用viztracer进行性能分析和优化

上一篇文章,我们详细讲解了scalene这个性能分析和优化工具的使用流程;今天,我们将深入探讨另一个性能分析和优化工具——viztracer。 什么是viztracer? viztracer是一个非常强大的分析器,可以生成详细的性能报告和可…

信号与系统实验-实验五 离散时间系统的时域分析

一、实验目的 1、理解离散信号的定义与时域特征,掌握在时域求解信号的各种变换运算; 2、掌握离散系统的单位响应及其 MATLAB 实现的方法; 3、掌握离散时间序列卷积及其 MATLAB 实现的方法; 4、掌握利用 MATLAB 求解微分方程&a…

国内有哪些比较优秀的wordpress主题?

WordPress作为全球最受欢迎的开源内容管理系统之一,拥有众多优质的主题供用户选择。那么国内有哪些比较优秀的wordpress主题呢?下面小编就和大家分享国内功能比较完善比较受欢迎的wordpress主题。 wordpress主题合集:WP主题-办公人导航https:…

力扣1541. 平衡括号字符串的最少插入次数

Problem: 1541. 平衡括号字符串的最少插入次数 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 Problem: 力扣921. 使括号有效的最少添加 类似于上述题目,不过此时一个左括号要和两个右括号配对 1.同理上述题目,遍历字符串时若遇见一个左括…

探索小众爱好:打造个人韧性与特色之路

在这个信息爆炸的时代,我们很容易陷入“千篇一律”的漩涡中,无论是生活方式还是兴趣爱好,似乎都趋向于某种“流行”或“热门”。然而,真正的个性与魅力,往往来源于那些不为大众所知的小众爱好。今天,我想和…

电脑硬盘数据恢复,4个方法,轻松恢复数据

在数字化时代的浪潮中,电脑硬盘不仅是存储数据的仓库,更是我们生活、工作、学习的记忆宫殿。然而,当这个宫殿中的一部分珍贵记忆突然消失,仿佛历史的片段被无情地抹去,我们不禁会感到焦虑和恐慌。此时,电脑…

环球赛乐科技有限公司与北京城市学院共建实习“绿色通道”

环球赛乐(北京)科技有限公司(简称“赛氪网”)与北京城市学院近日宣布,双方将合作开通顶岗实习“绿色通道”,旨在为实习生提供高质量的实践机会和就业平台。此次合作不仅体现了校企合作的深度融合&#xff0…