请求成功,响应二进制数据,但是页面不下载

页面放了一个下载按钮,点击下载后,可以正常请求下载的接口,而且也成功响应,但是文件不会从浏览器页面下载下来。

 <div><button onclick="down()">下载Excel</button></div>
 function download() {$.ajax({type: 'GET',url: '/download',success: function (data) {layer.msg(data.message)}});}

原因是发送Ajax请求后,后端响应的是二进制数据,jQuery的Ajax只能接收JSON等数据。


解决办法:

1、最简单的办法,在新的标签页请求接口,在请求接口上自己拼接参数

function download() {window.open("/download");
}

2、创建一个form表单,提交表单的方式下载

function download() {var studentName = 1;var form = document.createElement('form');form.id = 'form';form.name = 'form';//把这个form放在body里面document.body.appendChild(form);//给form里面创建一个input框,隐藏掉,来存参数var input = document.createElement('input');input.type = 'hidden';input.name = 'studentName';input.value = studentName;//把input放在form里面form.appendChild(input);form.method = "GET" //请求方式form.action = '/download';form.submit();//删掉formdocument.body.removeChild(form)
}

——完——

EasyExcel官方文档

示例:

@RestController
public class StudentController {@RequestMapping("/download")public JsonResult download(HttpServletResponse response) throws IOException {//文件名需要这样写,不能在setHeader直接写中文名,否则下载的文件名字为空,只有后缀String fileName = new String("学生表.xlsx".getBytes(), StandardCharsets.ISO_8859_1);response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf8");response.setHeader("Content-disposition", "attachment;filename=" + fileName );EasyExcel.write(response.getOutputStream(), Student.class).sheet("sheet").doWrite(getStudentList());return new JsonResult().setCode(1).setMessage("下载成功!").setData(null);}private List getStudentList() {ArrayList<Student> students = new ArrayList<>();for (int i = 0; i < 1000; i++) {Student student = new Student(i, "名字" + i, i, new Date());students.add(student);}return students;}
}

Student类(Excel行对象)

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {@ExcelProperty("学号")private Integer id;@ExcelProperty("姓名")private String name;@ExcelProperty("年龄")private Integer age;@ExcelProperty("出生日期")private Date birthday;
}

EasyExcel实现下载Excel(解决无法从浏览器下载问题)相关推荐

  1. 下载excel文件,360浏览器下载成了json文件,谷歌正常

    js写法 /*** 默认后台是get方法*/$('#getImportTemplate').on('click', function () {window.location = url_scm_bas ...

  2. 百度网盘下载慢解决办法,最新.浏览器下载速度突破方法

    百度网盘下载慢解决办法,最新.浏览器下载速度突破方法 参考文章: (1)百度网盘下载慢解决办法,最新.浏览器下载速度突破方法 (2)https://www.cnblogs.com/MyOceansWe ...

  3. 使用阿里的easyexcel 来实现excel文件的读取和下载

    使用阿里的easyexcel 来实现excel文件的读取和下载 1.首先下载maven依赖 <dependency><groupId>com.alibaba</group ...

  4. 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

    最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码.也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很 ...

  5. 解决各大浏览器下载文件,文件名乱码的问题

    最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码.也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很 ...

  6. java查询数据导出excel并返回给浏览器下载

    效果图: 1.点击导出表按钮 2.接着就会出现下图 3.点击上图中的确定按钮再接着就会出现下图 4.点击上图中的保存按钮接着就会出现下图,浏览器下载完成后的提示 5.打开下载好的文件如下图 好了,废话 ...

  7. 解决:Safari浏览器下载文件,后缀多拼接了.html

    你是否遇到同样的问题? 最后效果: 问题: 其他浏览器下载文件正常 Safari浏览器下载word文件,后缀多拼接了.html,导致打开下载文件乱码,下载的文件名称为vcard.vcf,手动去掉多余的 ...

  8. php手机端下载excel,PHPExcel:在客户端下载Excel文件

    问题已解决:对于可能存在此问题的其他用户 – 请注意PHP文件的编码.如果您使用PHPExcel,它必须是ANSII编码而不是UTF8,否则将彻底下载EXCEL.添加的标题(答案1)在我更改了文件本身 ...

  9. 谷歌浏览器的下载位置如何设置 Chrome浏览器下载路径设置方法简述

    在Chrome地址栏输入"chrome://settings/"后回车; 谷歌浏览器的下载位置如何设置?Chrome浏览器下载路径设置方法简述 谷歌浏览器的下载位置如何设置?Chr ...

最新文章

  1. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域
  2. linux 恢复win7引导,双系统重装win7后恢复ubuntu引导
  3. C#读取XML文件的基类实现
  4. C#移除HTML标记
  5. 用 Python 实现植物大战僵尸代码!
  6. 迅捷pdf转换器(文件格式转换器)
  7. 2020年西南交通大学数据仓库与数据挖掘期末考试题
  8. 全球免费开放的电子图书馆
  9. idea主题风格设置
  10. 史上最全介绍--新能源汽车整车控制器VCU开发流程功能概述
  11. 新炬网络签约GBASE南大通用 让中国用户用上世界级国产数据库
  12. 免费的 XShell 替代品,我推荐这5款软件,一个比一个香!
  13. N-Tiers设计系列(一):传统Asp运作方式
  14. python简单实现一个数字动态进度条
  15. Android面试准备之Java基础
  16. App原型图设计工具使用对比
  17. 【Python】多个文件夹合并到一个文件夹中
  18. HarmonyOS荣耀8x,不忘老机型 荣耀9X系列被曝今年将升级HarmonyOS
  19. NFC----PN532
  20. 在国内发展,有IPMP证书有用吗?

热门文章

  1. exp和expdp的filesize参数的使用--导出多个文件
  2. springboot新手项目从零开始搭建,涉及excel数据导出和邮箱发送(上)
  3. 怎么制作一张5M以上的大图片
  4. win10微软图标点击无反应_steam图标 教你win10系统双击steam图标没反应的解决教程...
  5. (一)职业规划和制定计划
  6. 微信小程序中view水平垂直居中
  7. 致批驳哥德尔不完全性定理者
  8. 齐岳|脂质体磷酸钙纳米粒RNA核糖核酸|淫羊藿苷固体纳米脂质体(ICA-SLN)修饰负载RNA核糖核酸
  9. android音视频播放器开发百度云,Android 播放端 SDK
  10. git本地无法上传到远程的问题解决方法