axios——503响应超时重复多次请求——技能提升

news2024/12/23 20:30:35

今天在写后台管理系统时,遇到一个问题,就是每天早上一启动项目,接口会提示503超时,因此项目运行必须重新刷新请求成功后才可以正常使用。

后端同事说请求超时了,需要前端处理一下,如果是503的状态码,则需要重复请求3次,如果还请求失败才需要用户手动刷新。

参考内容如下:

在vue或是react中进行网络请求axios用的都比较多,有时会因为网络不稳定问题导致请求超时,请求超时后常用解决方案都会重新尝试发送请求,尝试指定次数后不管成功与否皆结束本次请求

在这里插入图片描述
针对我手头上的项目antd-vue的框架,下面介绍我的处理方法:
我项目中用到的文件如下:

文件1:request.js+axios-interceptors.js文件

在这里插入图片描述

文件2:bootstrap.js

在这里插入图片描述

文件3:main.js

在这里插入图片描述
下面介绍各个文件中关于重复请求的写法:

解决步骤1:reques.js文件中添加以下内容

在这里插入图片描述

axios.defaults.retry = 2;//加上之前请求的一次,一共是3次
axios.defaults.retryDelay = 1000;

解决步骤2:axios-interceptors.js请求拦截器文件添加以下内容

 onRejected(error, options) {
	const { router, message } = options;
    if (error.response && error.response.status == 401) {
      message.error('认证 token 已过期,请重新登录');
      Cookie.remove(xsrfHeaderName);
      router.push('/login');
      return Promise.reject(error);
    }
    //主要是下面503的状态码处理
    if (error.response && error.response.status == 503) {
      var config = error.config;
      console.log('config', config);
      if (!config || !config.retry) return Promise.reject(error);
      config.__retryCount = config.__retryCount || 0;
      if (config.__retryCount >= config.retry) {
        return Promise.reject(error);
      }
      config.__retryCount += 1;
      var backoff = new Promise(function (resolve) {
        setTimeout(function () {
          resolve();
        }, config.retryDelay || 1);
      });
      return backoff.then(function () {
        return axios(config);
      });
    }else {
      let msg = '';
      if (
        error.response &&
        error.response.data &&
        error.response.data.error_description
      ) {
        msg = error.response.data.error_description;
      } else if (
        error.response &&
        error.response.data &&
        error.response.data.error
      ) {
        msg = error.response.data.error.message;
      } else {
        msg = error.message;
      }
      message.error(msg);
      return Promise.reject(error);
    }
}

在这里插入图片描述
最终效果如下所示:
在这里插入图片描述

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

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

相关文章

GEM TSU Interface Details and IEEE 1588 Support

摘要:Xilinx ZNYQ ULTRASCALE MPSOC的GEM和1588的使用 对于FPGA来说,只需要勾选一些znyq的配置就行了,其余的都是软件的工作; 所有配置都勾选之后,最终会露出来的接口如下: GEM需要勾选的配置如下&#xf…

如何在CentOS本地搭建DataEase数据分析服务并实现远程查看数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

Python基础10-使用正则表达式进行文本处理

在编程过程中,我们经常需要对文本进行处理,以提取、替换或分割特定的字符串。正则表达式(Regular Expression)是一种强大的文本处理工具,它可以帮助我们实现这些任务。以下是使用正则表达式进行文本处理的一些基本方法…

羊大师讲解五一假期,探索羊奶的健康奥秘

羊大师讲解五一假期,探索羊奶的健康奥秘 随着五一假期的到来,许多人选择出游、休息或与家人共度美好时光。在这个特别的时刻,我们或许可以停下来,探索一种营养丰富、历史悠久的饮品——羊奶。 羊奶,作为大自然赐予我…

LeetCode in Python 74/240. Search a 2D Matrix I/II (搜索二维矩阵I/II)

搜索二维矩阵I其实可以转换为搜索一维数组,原因在于,只要先确定搜索的整数应该在哪一行,即可对该行进行二分查找。 搜索二维矩阵II中矩阵元素排列方式与I不同,但思想大致相同。 目录 LeetCode in Python 74. LeetCode in Pyth…

Qt | QAbstractButton 抽象类

QAbstractButton 类中的属性 ①、autoExclusive:bool 访问函数:bool autoExclusive() const; void setAutoExclusive(bool); 描述了按钮的自动排他性,若启用了该属性,则属于同一父部件的可选中按钮的行为, 就好像是在同一排他性组中的按钮一样。除了单选按钮,默认为关…

如何进行域名解析?如何清理DNS缓存?(附源码)

目录 1、什么是域名? 2、为什么使用域名? 3、域名解析的完整流程 4、调用gethostbyname系统接口将域名解析成IP地址 5、为什么需要清理系统DNS缓存? 6、使用cmd命令清理DNS缓存 7、通过代码去清除系统DNS缓存 C软件异常排查从入门到精…

数据结构---线性表(顺序表)附代码

目录: 数据结构相关概念 1、什么是数据结构? 2、为什么需要数据结构? 顺序表 1、顺序表的概念及结构 1.1 线性表 1.2 顺序表 2、顺序表分类 3、动态顺序表的实现 什么是数据结构?? 数据结构是由 “数据”和 …

Redis高级篇详细讲解

0.今日菜单 Redis持久化【理解】 Redis主从 Redis哨兵 Redis分片集群【运维】 单点Redis的问题 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 并发能力问题:单节点Redis并发能力虽然不错,但也无法满足如618这样的高…

用不了ChatGPT?快试试免费又强大的Anthropic Claude

一、Claude 简介 Anthropic 官方: https://www.anthropic.com/product Claude 是最近新开放的一款 AI 聊天机器人,是世界上最大的语言模型之一,比之前的一些模型如 GPT-3 要强大得多,因此 Claude 被认为是 ChatGPT 最有力的竞争…

C语言:一维数组、二维数组、字符数组介绍

数组 介绍一维数组定义应用方法初始化 举例示例结果 二维数组定义应用方法初始化 举例示例结果 字符数组定义应用方法初始化 举例示例结果分析 介绍 在C语言中,数组是一种基本的数据结构,用于存储一系列相同类型的数据。数组可以是多维的,最…

助力企业挖掘市场商机,赛盈分销与UseePay联合举办家居用品DTC品牌出海峰会!

随着中国经济的井喷式发展以及政策的扶持与完善下,中国家居品牌在全球市场上的实力不断被夯实,国内家居品牌数量不仅激增,商品也更加深远持久影响着海外消费者的生活。 中国家居企业出海之路曾陷入危机当中,而2023年年终的经济复苏…

多行Textview 计算切分后的长度,并回退长度

实现类似的效果,一个多行的 textview, 如果赋值一个超长的字符,尾部长度回退部分,并添加 ... 最后添加一个详情按钮。 如果不超长则不显示详情 效果如图: 获取截断之后的字符长度 fun getLimitedCharacterCount(textV…

微信小程序:9.小程序配置

全局配置文件 小程序根目录下的app.json文件是小程序的全局配置文件。 常用的配置文件如下: pages 记录当前小程序所有的页面存放路径信息 window 全局设置小程序窗口外观 tabBar 设置小程序底部的tabBar效果 style 是否启用新版style 小程序窗口的组成部分 了解windo节点常…

NAT网络地址转换实验(思科)

华为设备参考:NAT网络地址转换实验(华为) 一,技术简介 NAT(Network Address Translation),即网络地址转换技术,是一种在现代计算机网络中广泛应用的技术,主要用于有效管…

2024.4.26——LeetCode 高频题复盘

目录 3. 无重复字符的最长子串206. 反转链表146. LRU 缓存215. 数组中的第K个最大元素25. K 个一组翻转链表15. 三数之和53. 最大子数组和21. 合并两个有序链表1. 两数之和5. 最长回文子串912. 排序数组 3. 无重复字符的最长子串 题目链接 class Solution:def lengthOfLongest…

OV SSL证书申请指南——六步轻松搞定

OV证书的申请流程如下: 一 确定申请渠道 根据自己的品牌偏好,选择一个证书服务商,这里推荐JoySSL,作为国产服务商,除了提供Digicert、Sectigo、Geotrust、Globalsign等国际品牌证书外,还拥有自主品牌OV证书。在JoySSL…

Linux报错处理:‘abrt-cli status’ timed out

最近登录服务器时出现报错,后来查阅资料发现是因为ssh登录时间很久,登录后出现abrt-cli status timed out 的报错。 1.问题分析 abrt-cli是ABRT(Automated Bug Reporting Tool)的命令行接口,用于在Linux系统中处理和报告程序崩溃。 如果abr…

C语言笔试题之重排链表

重排链表 实例要求 1、给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln2、请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …3、不能只是单纯的改变节点内部的值,而是…

Java八种包装类、常量池

文章目录 一、八种基本数据类型及其包装类1.1 类型详解1.2 基本类型与包装类型相互转换——自动装箱拆箱 二、Java常量池三、包装类的常量池技术(缓存池)3.1 各包装类缓冲池范围3.2 Integer i1new Integer(5) 与 Integer i25 的区别3.3 Integer.valueOf(…