这两天写一个后台生成Excel返回前端下载的功能,遇到了一个问题,记录一下。
前端点击下载按钮,文档损坏,但是使用Postman调用下载,文档却是正常的。
exportExcel(exportExcelParams.value).then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
});
let link = document.createElement('a');
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.download = exportExcelParams.value.expName; //下载的文件名
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
在请求方法中加入 responseType: 'blob' 后,问题解决,如下所示:
相关文章
Digester解析xml原理
Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。 digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,事件驱动主要是在解析...
Project Lombok (即 Lombok)学习记录
参考文档 什么是 Project Lombok ? 下载 Project Lombok 支持的安装方式 安装 Project Lombok lombok.jar 安装 eclipse 安装 lombo...
架构设计之设计模式总结
在实际的项目开发中,我们经常使用设计模式。设计模式能否正确、合理、灵活地应用到项目中,是判断您开发能力的重要指标之一。一方面,您需要为编程打下坚实的基础,另一方面,需要积累大量的项目经验。这个过程不是...
Java 设计模式 – Observer 观察者模式
说明都在注释: package ObserverModel; package ObserverModel; <span class="hljs-keyword">pac...
【Unity Shader学习笔记】Unity光照-渲染路径
官方文档:渲染路径 1、简介 需要为每个 Shader 设置正确的渲染路径。 在大多数情况下,一个项目只使用一个渲染路径,所以我们可以设置整个项目的渲染路径。[En]In most cases, a ...
Mybatis SqlNode源码解析
1.ForEachSqlNode mybatis的foreach标签可以将列表、数组中的元素拼接起来,中间可以指定分隔符separator <select id="getByUserI...
西门子PLC数据读取 Observer设计模式
当我听到这个需求的时候,我差点爆粗口(实际上可能已经爆了,不过我忘了)。 需求刚开始是: C#连接PLC Modbus读取值。 我用C#写完了,觉得太简单了,还弄了个窗体。 接着是: 只读值。这太简单...
Integer包装类中值的比较
前提知识:"=="当比较基本类型时比较的是值,当为引用类型时比较的是内存地址 首先看代码和结果: Integer integer1 = new Integer(1); Integer integer2...
lombok@NonNull 注解无法对 SpringMVC 封装请求的对象的 Field 进行非空校验
```java;gutter:true; If put on a parameter, lombok will insert a null-check at the start of the meth...
ucore操作系统学习(四) ucore lab4内核线程管理
现代操作系统为了满足人们对于多道编程的需求,希望在计算机系统上能并发的同时运行多个程序,且彼此间互相不干扰。当一个程序受制于等待I/O完成等事件时,可以让出CPU给其它程序使用,令宝贵的CPU资源得到...
OpenJDK 发行版本(国内和国外)
发行版本 OpenJDK 发行版 公司 主页 亚马逊 腾讯 阿里 微软 华为 Zulu JDK Azul Amazon Corretto 是开放 Java 开发工具包 (OpenJDK) 的免费、多平...
Springboot3.0+spring6.0+JDK17+配置jsp和打war包
由于某些缘故,公司的产品需要升级,但并不希望花费大量时间重写前端代码(原来的就不是前后分离的)。所以虽然spring和springboot都升级为最新的版本,但是依然还是需要支持jsp,并继续用打包为...
将本地项目上传到gitee中(使用idea或者git推送)
将本地项目上传到gitee(使用idea或者git推送) 方法一 使用git推送 1.首先在gitee上新建仓库 登录gitee账号,选择"仓库",新建仓库。 成功创建的仓库如图所示。创建仓库时请记住...