加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:39:24 所属栏目:百科 来源:网络整理
导读:转载来自:http://www.cnblogs.com/zuking/archive/2012/08/07/2626679.html 问 题 :以ajax的方式导出文件的时候,无法工作 现象描述 :导出文件的代码书写没任何问题,在ajax请求页面的Response里面添加了正常的导出设置,但是运行时却没有任何的反应。 问

转载来自:http://www.cnblogs.com/zuking/archive/2012/08/07/2626679.html

问  题:以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就会自动执行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读