最近项目上需要写一个导出excel功能,在开始的时候用ajax发送请求,不弹出导出路径选择框,后来在网上搜了一些资料,找到了问题所在,做一下总结:
前端页面:thymeleaf
后端语言:java
导出Excel:POI模式
1.ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件。将ajax请求改为loaction.href的形式发送请求,浏览器是可以识别二进制的,就可以弹出路径选择框了。
2.若改为loaction.href发送请求还不行,可以尝试在java导出代码中加入response.setHeader、reponse.setContentType等响应头信息。