处理登录失效后提示多个错误

news/2024/5/20 23:22:03
 问题:

我的场景是后端规定,即使登录失效返回的code仍是200,然后data的code是999什么的;

原本代码:
修改版代码:

通过节

const NotLoginEvent = () => {router.replace("/login");localStorage.clear();Message({message: '登录失效,请重新登录',type: "error",duration: 2.5 * 1000,});
}// respone拦截器
service.interceptors.response.use((response) => {/*** code为非200是抛错 可结合自己业务进行修改*/const res = response.data;if (res.code != "200" && res.code != "0") {if (res.code == "999" || res.code == "997" || res.code == "998") {let t = localStorage.getItem("logout_timer")  重点代码if (!t) {  let timer = setTimeout(() => { clearTimeout(timer)NotLoginEvent()  }, 500)         //节流localStorage.setItem("logout_timer", 1)}return Promise.reject(res);}Message({message: res.msg || res.message,type: "error",duration: 2.5 * 1000,});return Promise.reject(res);} else {return response;}},(error) => {Message({message: error.response.data.message || error.response.data.msg,type: "error",duration: 2.5 * 1000,});return Promise.reject(error.response);}
);

流来设置如果出现 999等即登陆过期的情况,报错方法一秒内只执行一次;(PS:如果接口响应较慢有可能又会出现该情况)

场景二:

后端规定当登录过期的时候,response的返回code为401或者非200的数字,便会走request.js里面封装的error方法

 error => {NProgress.done()if(!error || !error.response || !error.response.data){let error = {response:{data:{message:'网络异常,请联系客服(400 0828 820电话)'}}}return Promise.reject(error.response.data)}if(error.response && error.response.data && error.response.data.code=='401' ){Message({message: "登录已经失效,请您重新登录",type: 'error',duration: 5 * 1000})window.localStorage.clear();window.sessionStorage.clear() router.push('/login')return}if(error.response.data){error.response.data.message = httpCodeTxt[error.response.data.code] || '网络异 常,请联系客服(400 0828 820电话)'}return Promise.reject(error.response.data)}


http://www.mrgr.cn/p/17706813

相关文章

炒股技术整理系列:金针探底 雪迪龙 2024-02-06

特征: 1、大幅度下跌,大幅度是什么程度? 3个月最高点到最低点 跌了48%,,从确认趋势一个月内,跌了30%。 2、长下影线。涨幅不超过1%。 3、第二天或第三天收大幅阳线,已站上5日线 4、第四天可以买入。不跌破最后一根大阴线的中间段,可一直拿着。翻译 搜索 复制

自定义的基于System.Net.Http.HttpClient的WebClient,可以作为微信支付宝的发起请求时的基础请求类

个人编写的,自己用于自己的微信api的请求的实现当中,源码公开,大家可以查看反编译源码。以下是使用方法: 第一步 搜索和安装zmjtool第二步 发起请求1 /**引入命名空间*/2 using ZmjTool;3 4 /**发起Get请求*/5 using (var cl = new ZmjTool.WebClient())6 {7 cl.Handle…

mysql80-DBA数据库学习1-数据库安装

掌握能力 核心技能 核心技能 mysql部署 官网地址www.mysql.com 或者www.oracle.com https://dev.mysql.com/downloads/repo/yum/ Install the RPM you downloaded for your system, for example: yum install mysql80-community-release-{platform}-{version-number}.noarch…

地铁查询app 结对作业三

经过今天一下午的奋斗 安卓app 只剩下最难的部分了 最短路径问题 我们考虑用迪杰斯特拉算法 不过 没有做出来 还要继续去学习一下这个代码 并寻求网上代码的帮助

解决跨域问题

代码量:100 博客:1 我们使用的是niginx 解决跨域问题,其实我上网搜索了很多niginx跨域的代码,但是不知道怎么使用放在哪里,刚才经过同学的帮助成功知道啦,下面展示一下路径的图片 这里的nginx.exe是启动,shutdown是自己写的可以快速关闭程序

数据库管理开发工具Navicat for MySQL Mac版下载

Navicat for MySQL(Mac版)是一款强大的数据库管理开发工具,专为MySQL设计。它提供直观的用户界面,支持数据建模、查询构建、数据传输等功能,帮助用户轻松管理数据库。其特点包括高效的数据处理能力、安全的数据传输机制…

文本数据处理

文本数据处理 情无论巨细,往往存在一个准备阶段。比如做饭炒菜,需要择菜、洗菜、切菜、热锅等准备工作;出远门需要整理好身份证、手机、钱包等随身物品。类似地,在处理文本的任务中,也存在预处理这么一个重要阶段,包括诸如统一数据格式、去噪、词形还原、分词之类的基本操…

UG NX二次开发(C#)-通过曲线组生成NURBS曲面

文章目录 1、前言2、UG NX中通过曲线组生成NURBS曲面的操作3、采用NXOpen C#方法的源代码1、前言 在UG NX中,曲线、曲面的操作使用比较多,对于创建NURBS曲面,可以通过曲线组来生成,本文以NXOpen C#的方法实现通过曲线组生成NURBS曲面的功能。对于UG NX二次开发感兴趣或者有…

linux之zabbix自定义监控

zabbix基本配置见:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/136783672 自定义监控规则 命令为who | wc -l 显示为2,主机一个,mobaxterm一个,思路是开启3个终端,让主机的zabbix服务自动检测1…

7.Python Spark安装

7.1Scla安装 下载:wget https://scala-lang.org/files/archive/scala-2.13.0.tgz 解压:tar xvf scala-2.13.0.tgz 移动到/usr/local 目录 :sudo mv scala-2.13.0 /usr/local/scala 设置Scala环境变量: sudo gedit ~/.bashrc source ~/.bashrc 启动scala :q退出 7.2安装Spar…

CommandBuffer使用 - 分屏

原理 先抓取整个屏幕画面到RenderTexture1上,然后把左边一半复制到RenderTexture2,右边一半复制到RenderTexture3效果 c#代码using UnityEngine; using UnityEngine.Rendering;[RequireComponent(typeof(Camera))] public class SplitScreenEff : MonoBehaviour {public Ren…

2024年3月28号java学习

面向对象 一个对象的内存图 Student s = new Studen();加载new类的.class文件(只需要加载到方法区一次) 声明局部变量(s) 在堆中开辟一个空间 默认初始化 显示初始化 构造方法初始化 将堆内存中的地址值赋值给左边的局部变量this关键字 是一个指向方法调用者的内存地址的引用…

C++堆详细讲解

介绍 二叉堆是一种基础数据结构,主要应用于求出一组数据中的最大最小值。C 的STL中的优先队列就是使用二叉堆。 堆的性质 : 1 . 堆是一颗完全二叉树 ; 2 . 堆分为大根堆 和 小根堆(这里不讨论那些更高级的如:二叉堆,二叉堆,左偏树等等) …

论文笔记 SimpleNet A Simple Network for Image Anomaly Detection and Localization

背景 对于工业场景上的异常检测和定位任务, 由于零件的异常情况具有多样性和随机性, 所以很难用有监督的方式来解决; 目前用的最多的是用无监督的方式, 在训练过程中只使用正常样本进行训练, 目前无监督解决异常检测任务的三个趋势是基于重建的方法, 基于合成的方法以及基于嵌入…

【MySQL】3.2MySQL事务和存储引擎

MySQL事务 一、MySQL事物的概念 事务是一种机制,包含了一件事的完整的一个过程 ●事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么…

量化交易软件开发定制的步骤

量化交易软件的定制开发是一个复杂而精细的过程,需要经过一系列步骤来确保最终交付的软件符合客户的需求并具有高度的可靠性和效率。以下是量化交易软件开发定制的主要步骤: 1. 需求分析与规划 在开始开发之前,首先需要与客户深入沟通&…

Meta 推出SceneScript,一种全新的3D场景重建方式

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Java作业练习_第五周子类与继承作业(小白记录,仅供参考)

@目录第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题 第一题 1在Person类中定义的是 Teacher和Manager类的共性内容, 姓名 属性,年龄属性, String name ; int age;方法say(); 2定义Person类的子类Teacher类。可以使用父类Person的姓名和年龄属性,说话的方…

自媒体用ChatGPT批量洗稿软件V5.9环境配置/软件设置教程【汇总】

大家好,我是淘小白~ 首先,感谢大家的支持~~ ChatGPT采集洗稿软件V5.9版本更新,此次版本更新修改增加了一些内容: 1、自定义多条指令,软件自动判断指令条数,进行输入 2、增加谷歌浏览多账号轮询&#xf…