您的位置:首页 > 其它

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

2012-08-07 14:45 309 查看
问  题:以ajax的方式导出文件的时候,无法工作

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

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

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

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

页面载入时

http response 的 header 中含有(Content-disposition:attachment[b]) [/b]

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

在a.html的下载事件中,执行js代码:window.open('d.aspx');

在a.html中放置一个隐藏的iframe,在下载事件中,将该iframe的src设置为d.aspx,这样d.aspx就会自动执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: