2012-11-09 176 views
0
  1. 客户端(请求通过XMLHttpRequest) - >服务器。
  2. 服务器[构建CSV并将其打印在响应的输出流上] - >客户端。

现在第3步应该是 - >客户端的浏览器应该显示下载对话框(保存,打开和取消)。由于内容类型是来自服务器的纯文本,并且未设置内容配置,我们是否可以使用javascript创建文件并提示用户下载?Ajax/Javascript - 文件下载

我知道这个问题是微不足道的。但没有其他选择。我必须这样做。

更改服务器端脚本将使其成为一分钟任务。但我必须在客户端做到这一点。 XMLHttpRequest对象的responseText属性将是纯文本,我必须显示文本文件的下载提示。

这可能吗?

回答

1

不是我所知道的。但是,您可以使用location.href(或者需要POST数据的表单)来请求服务器端文件。使用正确的标题(Content-Disposition: attachment,我认为还有另一个),您可以下载而不是显示响应。

编辑:更好的是,使用隐藏的iframe。这样,你仍然可以在主页面中看到“加载,请稍候”的内容。

1

理论上它可能是可能的,通过使用数据的URI

<a download = "yourfile.csv" href="data:application/octet-stream;charset=YOURCHARSET;base64,BASE64allthedata">Generate</a> 
+0

爵士实际上在HTML 5在更低的版本中实现,而不是? (我的意思是的下载属性)。谢谢回复。 –