vue文件下载请求blob文件流token失效的问题

页面停留很久token失效没有刷新页面,这时候点击下载依然可以导出文件,但是文件打不开且接口实际上返回的是401,这是因为文件下载的方式通过window创建a标签的形式打开的,并没有判断token失效问题
在这里插入图片描述

const res = await this.$axios.get(`url`,{responseType: 'blob'})let reader = new FileReader(); // 创建读取文件对象reader.readAsText(res.data, 'utf-8'); //读取文本文件reader.addEventListener("loadend", () => {//.loadend事件:读取完成最后触发。console.log(this.isToJSON(reader.result),'json');if (this.isToJSON(reader.result)) {//判断是否可以转换成JSON,可以转换就退出,不能就说明是文件,下面会贴出结果Notification({title:'异常登录',type:'warning',duration:2000,message:'token已失效,请重新登入'})setTimeout(()=>{window.location.href='/'localStorage.removeItem("token");},1000)} else {const link = document.createElement("a");console.log(res.data,'res.data');let blob = new Blob([res.data],{ type: 'application/zip,charset=utf-8'});  //文件流处理link.style.display = "none";  //去除a标签的样式// 设置连接link.href = URL.createObjectURL(blob)let fileName = new Date().getTime()link.download = fileName + '.zip'document.body.appendChild(link)//模拟点击事件link.click()//移除创建的a标签window.URL.revokeObjectURL(link.href)document.body.removeChild(link)this.downloadId=''}});

这里通过能不能转为JSON来判断是否为正确的文件流的原因是
如果是正确的文件流不能转为json:
在这里插入图片描述
如果是接口返回其他情况则可以:
在这里插入图片描述

isToJSON(str) { //判断是否可以转换成JSON格式if (typeof str == 'string') {try {JSON.parse(str);return true;} catch (e) {// console.log(e);return false;}}
},

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

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

相关文章

10:00面试,10:08就出来了,问的问题超出我认知

本来在上家公司上班,加班是每天必不可少的,但是看在加班费给的比较多的份上,就没有太计较了。没想到9月份下一份通知,所有人不准加班,加班费不仅没有了,薪资还要降30%,这下搞的生活都生活不下去了。 还好有…

Dijkstra求最短路 I(Dijkstra算法)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整…

python和pygame实现捉小兔游戏

python和pygame实现捉小兔游戏 python和pygame实现捉小兔游戏,需要安装使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 下面是使用Python和Pygame创建的游戏,其中有…

Pytorch从零开始实战13

Pytorch从零开始实战——ResNet与DenseNet探索 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet与DenseNet探索环境准备数据集模型选择开始训练可视化总结 环境准备 本文基于Jupyter notebook,使用Python3.8,P…

Java连接数据库实现用户登录和注册功能

目录 需求内容如下 示例代码 数据库studb Java代码 效果图 需求内容如下 1,创建数据库studb 2,库中添加用户表userinfo,包含如下字段 用户id ,用户名,用户密码,用户权限 (数据类型和约束自己定义&#xff09…

web微服务规划

一、背景 通过微服务来搭建web系统,就要对微服务进行规划,包括服务的划分,每个服务和数据库的命名规则,服务用到的端口等。 二、微服务划分 1、根据业务进行拆分 如: 一个购物系统可以将微服务拆分为基础中心、会员…

SpringMVC异常处理机制

2.1 异常描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高&a…

【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]

阅读导航 引言一、thread类的简单介绍二、线程函数详细介绍1. start() 函数(1)头文件(2)函数原型 2. join() 函数(1)头文件(2)函数原型 3. detach() 函数(1)头…

LeetCode Hot100 25.K个一组翻转链表

题目: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯…

7+m6A+分型+实验,甲基化方向的生信思路,没有思路的同学可参考

今天给同学们分享一篇生信文章“Landscape analysis of m6A modification regulators related biological functions and immune characteristics in myasthenia gravis”,这篇文章发表在J Transl Med期刊上,影响因子为7.4。 结果解读: MG相…

快速文件搜索软件 Everything-voidtools

Everything 文件搜索软件 "Everything"是一款快速、轻巧且高效的桌面搜索引擎软件,专门用于在 Windows 操作系统上搜索文件和文件夹。它的主要特点是超快的搜索速度和精准的搜索结果,能够让用户快速找到他们需要的文件或文件夹。 1. 快速搜…

IDEA小技巧

目录 1. IDEA自动添加注释 创建类的时候自动添加注释 创建函数、方法的注释 1. IDEA自动添加注释 参考文档:idea java 自动添加文件注释 idea新建类自动注释_mob6454cc73c728的技术博客_51CTO博客 【操作工具】IDEA创建类及已有类添加注释-详细操作_idea设置创建…

搭建个人智能家居 开篇(搭建Home Assistant)

搭建个人智能家居 开篇(搭建Home Assistant) 前言Home Assistant搭建Home AssistantUbuntu系统搭建Windows系统搭建VM安装方法VirtualBox安装方法: 配置Home Assistant控制页面 前言 随着科技的进步、发展,物联网给我们的生活带来…

JdbcTemplate query系列方法指定jdbcType类型

使用SqlParameterValue类包装一下就行了,只要创建一个SqlParameterValue对象,通过构造函数把jdbcType类型(用的是Types中的常量)和值传入 例如: // 这两个包下面的 import org.springframework.jdbc.core.SqlParamete…

c YUV 转 JPEG(准备霍夫曼编码)

先取yuv 文件中一个168的块,跑通全流程 理解与思路: 1.块分割 YUV 文件分为:YUV444 YUV 422 YUV420。444:就是:12个char 有4个Y,4个U,4个 U,422:8个char 中有4个Y &#x…

Redis——01,服务器购买、安装Redis

服务器购买、安装Redis 一、随便去一个主流的国内主流的云服务提供商,购买一个服务器。二、Redis安装:————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢…

[论文阅读]Multimodal Virtual Point 3D Detection

Multimodal Virtual Point 3D Detection 多模态虚拟点3D检测 论文网址:MVP 论文代码:MVP 论文简读 方法MVP方法的核心思想是将RGB图像中的2D检测结果转换为虚拟的3D点,并将这些虚拟点与原始的Lidar点云合并。具体步骤如下: (1)…

VINS-MONO代码解读6----pose_graph

开始pose_graph部分,本部分记住一句话无论是快速重定位还是正常重定位,求出 T w 1 w 2 T_{w_1w_2} Tw1​w2​​就是终极目标。 还剩一个整体Pipeline~~ 1. pose_graph_node.cpp 注意,定义全局变量时即实例化了一个对象 PoseGraph posegra…

C++之模板

目录 泛型编程 模板 函数模板 函数模板的实例化 隐式实例化 显示实例化 类模板 我们知道STL(标准模板库)是C学习的精华所在,在学习STL之前我们得先学习一个新的知识点-------模板。那么模板究竟是什么呢?围绕着这个问题&a…

绘图示例---QT手动调用绘图事件,按钮控制图片

效果: 点击 “移动” 图片向右移动20,点击 “西理win嘛” 图片每秒向右移动20 QQ录屏20231212164128 下面时代码详解: 注意使用UI和代码实现按钮的不同 UI: ui->pushButton->setGeometry(windowWidth-105, windowHeight-25, 100, 20);…