ajax 导出文件( Excel, txt 等) 问题分析

时间:2022-08-27 23:46:55

问  题:以ajax的方式导出文件的时候,无法工作

现象描述:导出文件的代码书写没任何问题,在ajax请求页面的Response里面添加了正常的导出设置,但是运行时却没有任何的反应。

问题分析:用ajax请求后,返回来的仅仅是XmlHttpRequest对象的内容,无法命令浏览器打开文件下载对话框(至于浏览器的文件下载对话框的触发原因,可能是当前页面重新加载时,并且http的header里面含有(Content-disposition:attachment)时才会显示出来吧,仅是个人猜测。)

问题解决:知道的问题的原因,我们就可以采取别的措施来搞定这样的需求:

 

浏览器打开文件下载对话框的两个必要条件:

  • 页面载入时
  • http response 的 header 中含有(Content-disposition:attachment)

 

通过两种方式满足这两个条件:准备两个文件:1个是我们的ajax页面a.html,另外一个是下载页面d.aspx

  1. 在a.html的下载事件中,执行js代码:window.open('d.aspx');
  2. 在a.html中放置一个隐藏的iframe,在下载事件中,将该iframe的src设置为d.aspx,这样d.aspx就会自动执行

 


广告:

夏季透气运动鞋:(匡威)  >>  查看详细情况

ajax 导出文件( Excel, txt 等) 问题分析