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

 问题:

我的场景是后端规定,即使登录失效返回的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.mzph.cn/news/764874.shtml

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

相关文章

想学Solidworks二次开发进来看下

序号标题1H1:Solidworks二次开发简介2H2:Solidworks的基础了解3H3:什么是Solidworks二次开发?4H3:为什么选择Solidworks二次开发?5H2:Solidworks二次开发的优势6H3:提高生产效率7H3&…

【PyTorch】解决PyTorch安装中torch.cuda.is_available()返回False的问题

最近在安装PyTorch时遇到torch.cuda.is_available() False的问题,特此记录下解决方法,以帮助其他遇到相同问题的人。 问题描述 Ubuntu 20.04,3060 Laptop,安装了CUDA 11.4,在Anaconda下新建了Python 3.8的环境&…

websocket上传大文件导致连接端开,上送失败解决方案

出现原因, 首先web端与服务端进行websocket连接,服务端给设备下发指令,设备给服务器上送文件,然后服务端通过websocket给web端上送,但是发现终端上送的小文件通过websocket给web端上送,但是大文件会导致we…

为何众多编程语言呈现出相似性:结构、功能与进化的必然性

在计算机科学领域,各类编程语言层出不穷,从早期的FORTRAN、C语言,到如今流行的Python、Java、JavaScript等,虽然每种语言都有其独特之处,但在核心概念、语法结构和设计原则等方面却展现出惊人的相似性。本文旨在探讨造…

Flume详解

Source AVRO Source AVRO Source接收被AVRO序列化之后的数据,结合AVRO Sink,可以实现复杂的流动模型 案例 编辑文件 cd /opt/software/flume-1.11.0/data/ vim avrosource.properties 在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1 ​ # …

python的ITS 信息平台的设计与实现flask-django-nodejs-php

第二,陈列说明该系统实现所采用的架构、系统搭建采用的服务器、系统开发环境和使用的工具,以及系统后台采用的数据库。 最后,对系统进行全面测试,主要包括功能测试、查询性能测试、安全性能测试。 分析系统存在的不足以及将来改进…

stable-diffusion-electron-clickstart 支持windows AMD显卡

前言 使用vue3 vite electron element-plus构建,正好学习下electrongithub stable-diffusion “画境导航者” 启动器 简介 stable-diffusion “画境导航者” 启动器支持功能 一键启动打开文件夹(tmp、txt2img-images)等模型所在文件夹&…

ios symbolicatecrash 符号化crash

一、准备 1.1 .crash 文件获取 设备连接电脑 打开XCode, 依次 XCode -> Windows -> Device and Simulator -> Open Recent Logs 找到 (对应app名+时间点) -> 右键 Show in Finder 1.2 .dSYM 和 .app 文件获取 .dSYM是十六进制函数地址映射信息的中转文件,调试的…

中国光伏展

河北省京津冀国际光伏展是一场专注于光伏产业的展览会。作为中国光伏行业的重要展会之一,该展会旨在推动京津冀地区光伏产业的发展,促进光伏技术的交流与合作。 光伏展将汇集来自国内外的光伏企业、科研机构、专家学者等相关人士,展示最新的光…

面试算法-84-删除有序数组中的重复项

题目 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#x…

C语言中__attribute__()

__attribute__() 属性: interrupt(“”) 我们知道,当发生中断的时候,系统会通过中断向量表跳转到相应的函数中并执行。等中断服务函数执行完后,又继续回到程序中。因此这个过程中涉及到一个现场的保护和恢复。那是否需要在中断处理函数里去…

Jetson AGX ORIN 配置 FGVC-PIM 神经网络

Jetson AGX ORIN 配置 FGVC-PIM 神经网络 文章目录 Jetson AGX ORIN 配置 FGVC-PIM 神经网络配置 ORIN 环境创建 FGVC-PIM 虚拟环境安装 PyTorch安装 torchvision安装其他依赖包 配置 ORIN 环境 首先先配置 ORIN 的环境,可以参考这个链接: Jetson AGX …

Java Spring使用event-stream进行数据推送

前端使用EventSource方式向后台发送请求&#xff0c;后端接收到之后使用event-stream方式流式返回。可以应用在时钟、逐字聊天等场景。 前端js示例代码&#xff08;向后台请求数据&#xff0c;并展示到“iddate”的div上&#xff09; <script type"text/javascript&q…

【Hive】with 语法 vs cache table 语法

语法分别如下&#xff1a; cache table table_name as (select ... from ... )with table_name as (select ... from ... )需要注意&#xff0c;with语法只相当于一个视图&#xff0c;并不会将数据缓存&#xff1b;如果要将数据缓存&#xff0c;需要使用cache table语法。 参考…

nuclei使用方法

nuclei使用方法 查看帮助 nuclei -h 列出所有模板 nuclei -tl 查找某种cms的相关漏洞模板&#xff0c;wordpress为例 nuclei -tl -tc "contains(name,wordpress)"便会列出内容里含有wordpress关键字的漏洞检测模板 使用与某cms相关的所有漏洞模板进行扫描&#…

css的background详解

CSS的background属性是一个复合属性&#xff0c;用于设置元素的背景效果。这个属性实际上是多个背景属性的简写形式&#xff0c;包括背景颜色&#xff08;background-color&#xff09;、背景图片&#xff08;background-image&#xff09;、背景重复&#xff08;background-re…

基于Lealfet.js展示Turf.js生成的平滑曲线实践

目录 前言 一、问题的由来 1、创建网页框架 2、创建map对象 3、构建点位&#xff0c;生成路线 二、Turf.js平滑曲线改造 1、官网方法介绍 2、0.4弯曲度曲线 3、0.85弯曲度曲线 4、0.1度弯曲曲线 5、综合对比 总结 前言 在很多的关于路线的gis应用中&#xff0c;我们…

无法加载DLL“SQLite.Interop.dll“:找不到指定模块

当系统在加载 DLL 时出现“找不到指定模块”的错误时&#xff0c;通常是因为系统无法找到所需的 DLL 文件。这个问题通常出现在使用第三方库的时候。 在这种情况下&#xff0c;你可以尝试以下几种解决方法&#xff1a; 确认 SQLite.Interop.dll 文件是否存在于正确的目录中。 …

开源项目ChatGPT-Next-Web的容器化部署(三)-- k8s deployment.yaml部署

一、说在前面的话 有了docker镜像&#xff0c;要把一个项目部署到K8S里&#xff0c;主要就是编写deployment.yaml。 你需要考虑的是&#xff1a; 环境变量服务的健康检测持久化启动命令程序使用的数据源程序使用的配置文件 因为本前端项目比较简单&#xff0c;这里只做一个…

网络工程师笔记15(OSPF协议-2)

OSPF协议 OSPF是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的 IGP 协议之一。 Router-ID(Router ldentifier&#xff0c;路由器标识符)&#xff0c;用于在一个 OSPF 域中唯一地标识一台路由器。Router-ID 的设定可以通过手工配置的方式&#xff0c;或使用系统自…