axios 请求取消及重发
/*在没登录完之前所有的请求全部取消,登录成功后把取消的请求列表重新发起*/
import axios from 'axios';
const whiteList = ['post /api/login'];
const resetFetchList = [];
let isLogin = false;// 添加请求拦截器
axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么// console.log(config);const requestMark = `${config.method} ${config.url}`; // 请求标识 为了在响应的时候删除请求队列中的数据const flag = resetFetchList.findIndex(item=>item.requestMark === requestMark);if (flag !== -1) {// resetFetchList[flag].cancel(); // 删除重复请求时用resetFetchList.splice(flag,1); // 在等待重新发起的请求列表中移除}const cancelToken = axios.CancelToken;const source = cancelToken.source();config.cancelToken = source.token; config.cancel = source.cancel;config.requestMark = requestMark; //添加唯一标识符if (!whiteList.includes(requestMark) && !isLogin) {resetFetchList.push(config);config.cancel();}return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器
axios.interceptors.response.use(function (response) {// 对响应数据做点什么if(response.config.requestMark === 'post /api/login' /** 并且登录成功 */) {isLogin = true;resetFetchList.forEach(item => {axios.request(item);})}// console.log(currentFetchList);return response;}, function (error) {// 对响应错误做点什么return Promise.reject(error);
});export default axios;
axios 请求取消及重发相关推荐
- vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园
在开发vue项目中,请求是不可缺少的,在发送请求时常常需要统一处理一些请求头参数等设置与响应事件,这时利用请求拦截器再好不过. 这里以axios请求为例 实现了设置统一请求头添加token, 其中to ...
- 【Day01】你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求?
你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求? 一.封装过哪些方面? 1.1 http 封装 1.2 api 封装 1.2.1 总 api 接口的映射 1.2.2 建立一 ...
- Cli4.5.x 中使用axios请求数据
Cli4.5.x 中使用axios请求数据 文章目录 Cli4.5.x 中使用axios请求数据 前言 一.安装并配置axios 1.安装axios 2.vue-axios 二.各种请求方法 三.请求 ...
- axios 请求拦截器响应拦截器
一. 拦截器介绍 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器.响应拦截器. 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie.请求体加验证.设置请求头等,相 ...
- Ajax请求,JQuery发送请求,Axios请求,Fetch请求总结
常见的请求方式 1.Ajax请求 定义: 同步与异步的区别: Ajax的工作原理: 实现AJAX的基本步骤: Get请求: Post请求: 2.JQuery发送请求 Get请求: Post请求: 3. ...
- axios请求封装与开发环境proxyTable代理
axios请求封装与开发环境proxyTable代理详解 一.axios请求封装 1. axios安装与使用 1.1 安装 1.2 引入 1.3 环境切换 1.4 设置请求超时 1.5 请求头设置 1 ...
- axios请求REST接口示例
axios功能简介 从浏览器中创建XMLHttpRequests 从node.js创建http请求 支持Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换JSON数据 ...
- React Axios 请求解决跨域问题
网上看了很多的方案,但是不知道为什么,作为初学者,对react不太清楚的话,解决跨域还是有很多的问题.这篇博客针对小白,第一次调试react 跨域问题,甚至第一次使用Axios ,第一次... 废话就 ...
- axios请求GBK页面中文乱码解决方法
axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...
最新文章
- 2015年最新出炉的JavaScript开发框架
- 【问题帖】压缩图片大小至指定Kb以下
- linux获取命令的返回值,怎样获取shell函数的返回值及shell命令的返回值?
- SpringBoot项目以服务器方式启动
- python获取数组中大于某一阈值的那些索引值_使用Python+OpenCV进行实时车道检测...
- 都2021年了,不会还有人连深度学习都不了解吧(三)- 损失函数篇
- SuperMap注册流程记录
- 收藏网站制作常用经典css.div.布局.设计实例打包下载(下方有其他链接)
- wordpress 文章页面 (single.php)
- poj3171 Cleaning Shifts
- Calendar类方法——编写万年历的两种方式
- Oracle第二财季业绩表现抢眼 | 搜狗推出“唇语识别”技术 | FF宣布完成超10亿美元A轮融资
- m基于迫零ZF准则的通信均衡器的matlab仿真
- UNICODE与 UTF-8的转换详解
- 大量数据导出Excel方案
- 第一章 行列式(知识点部分)
- html依次显示选中的值,html 快速布局 - osc_pw143nru的个人空间 - OSCHINA - 中文开源技术交流社区...
- 一如昨日的时光,一如昨日的酒--
- Web前端学习笔记01:Web标准_HTML_lang_字符集_HTML标签的语义化
- android 严振杰权限管理,MyAndroidFrameWork
热门文章
- Win10邮箱怎么添加163邮箱?
- Outlook 2007 脱机通讯簿无法下载 0X80200013 错误
- 433和2.4G无线通信比较
- 2022年监理工程师质量/投资/进度控制考试模拟试题卷及答案
- 提高沉浸感,PS VR飞行游戏与飞行摇杆更配!
- 即插即用! | 国防科大联合慕尼黑工业大学提出新型解耦头 TSCODE: 助力目标检测器轻松涨点!
- Android开源的精美日历控件,热插拔设计的万能自定义UI,flutter调用原生sdk
- 八爪鱼 爬取微博中的图片到本地
- pulltorefresh刷新
- C++--Lambad和包装器