/*在没登录完之前所有的请求全部取消,登录成功后把取消的请求列表重新发起*/
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 请求取消及重发相关推荐

  1. vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园

    在开发vue项目中,请求是不可缺少的,在发送请求时常常需要统一处理一些请求头参数等设置与响应事件,这时利用请求拦截器再好不过. 这里以axios请求为例 实现了设置统一请求头添加token, 其中to ...

  2. 【Day01】你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求?

    你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求? 一.封装过哪些方面? 1.1 http 封装 1.2 api 封装 1.2.1 总 api 接口的映射 1.2.2 建立一 ...

  3. Cli4.5.x 中使用axios请求数据

    Cli4.5.x 中使用axios请求数据 文章目录 Cli4.5.x 中使用axios请求数据 前言 一.安装并配置axios 1.安装axios 2.vue-axios 二.各种请求方法 三.请求 ...

  4. axios 请求拦截器响应拦截器

    一. 拦截器介绍 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器.响应拦截器. 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie.请求体加验证.设置请求头等,相 ...

  5. Ajax请求,JQuery发送请求,Axios请求,Fetch请求总结

    常见的请求方式 1.Ajax请求 定义: 同步与异步的区别: Ajax的工作原理: 实现AJAX的基本步骤: Get请求: Post请求: 2.JQuery发送请求 Get请求: Post请求: 3. ...

  6. axios请求封装与开发环境proxyTable代理

    axios请求封装与开发环境proxyTable代理详解 一.axios请求封装 1. axios安装与使用 1.1 安装 1.2 引入 1.3 环境切换 1.4 设置请求超时 1.5 请求头设置 1 ...

  7. axios请求REST接口示例

    axios功能简介 从浏览器中创建XMLHttpRequests 从node.js创建http请求 支持Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换JSON数据 ...

  8. React Axios 请求解决跨域问题

    网上看了很多的方案,但是不知道为什么,作为初学者,对react不太清楚的话,解决跨域还是有很多的问题.这篇博客针对小白,第一次调试react 跨域问题,甚至第一次使用Axios ,第一次... 废话就 ...

  9. axios请求GBK页面中文乱码解决方法

    axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...

最新文章

  1. 2015年最新出炉的JavaScript开发框架
  2. 【问题帖】压缩图片大小至指定Kb以下
  3. linux获取命令的返回值,怎样获取shell函数的返回值及shell命令的返回值?
  4. SpringBoot项目以服务器方式启动
  5. python获取数组中大于某一阈值的那些索引值_使用Python+OpenCV进行实时车道检测...
  6. 都2021年了,不会还有人连深度学习都不了解吧(三)- 损失函数篇
  7. SuperMap注册流程记录
  8. 收藏网站制作常用经典css.div.布局.设计实例打包下载(下方有其他链接)
  9. wordpress 文章页面 (single.php)
  10. poj3171 Cleaning Shifts
  11. Calendar类方法——编写万年历的两种方式
  12. Oracle第二财季业绩表现抢眼 | 搜狗推出“唇语识别”技术 | FF宣布完成超10亿美元A轮融资
  13. m基于迫零ZF准则的通信均衡器的matlab仿真
  14. UNICODE与 UTF-8的转换详解
  15. 大量数据导出Excel方案
  16. 第一章 行列式(知识点部分)
  17. html依次显示选中的值,html 快速布局 - osc_pw143nru的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. 一如昨日的时光,一如昨日的酒--
  19. Web前端学习笔记01:Web标准_HTML_lang_字符集_HTML标签的语义化
  20. android 严振杰权限管理,MyAndroidFrameWork

热门文章

  1. Win10邮箱怎么添加163邮箱?
  2. Outlook 2007 脱机通讯簿无法下载 0X80200013 错误
  3. 433和2.4G无线通信比较
  4. 2022年监理工程师质量/投资/进度控制考试模拟试题卷及答案
  5. 提高沉浸感,PS VR飞行游戏与飞行摇杆更配!
  6. 即插即用! | 国防科大联合慕尼黑工业大学提出新型解耦头 TSCODE: 助力目标检测器轻松涨点!
  7. Android开源的精美日历控件,热插拔设计的万能自定义UI,flutter调用原生sdk
  8. 八爪鱼 爬取微博中的图片到本地
  9. pulltorefresh刷新
  10. C++--Lambad和包装器