Ajax请求导出Excel的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax请求导出Excel的问题相关的知识,希望对你有一定的参考价值。

原文地址:http://yuwenlin.iteye.com/blog/2275289

1.Ajax请求导出Excel的问题描述:

  前端发起Ajax请求get或post,后台使用Poi生成excel文件,最后用response输出excel文件流。整个调用过程都没有报任何错,excel文件也生成在本地,但浏览器没有弹出文件下载,毫无反应。

2.解决:

  开始一直以为是浏览器兼容性,或后台输出文件流代码有问题,调了半天,也都一样,不报任何错。后来上网搜发现在类似的问题,Ajax导出excel没反应,网上有人说不能使用ajax,换成地址重定向location.href就行,一换还真好使。就是ajax请求的问题。

3.总结:

  导出excel为什么不能用ajax请求?

  因为导出excel,实际上是文件下载,后台需要往前端(浏览器)写文件流的。而Ajax请求获取数据都是“字符串”,整个交互传输用的都是字符串数据,它没法解析后台返回的文件流,但浏览器可以。

4.Ajax与Form表单提交的区别:

  Ajax提交不会自动刷新页面,需要手动处理。

  Form表单提交在数据提交后会刷新页面,如果是Post提交,点击刷新浏览器会提示 是否再次提交。

 

以上是关于Ajax请求导出Excel的问题的主要内容,如果未能解决你的问题,请参考以下文章

POI导出Excel不弹出保存提示_通过ajax异步请求(post)到后台通过POI导出Excel

ajax为啥不能导出文件

如何用ajax导出excel-CSDN论坛

SSM excel文件的导入导出

SpringMVC中导出Excel文件,关于弹出一个选择框,选择导出Excel文件的路径项目细节

用ajax调用以response输出到客户端导出excel不成功,不报错也不提示下载