Ajax / Javascript - 文件下载

时间:2012-11-09 03:36:48

标签: javascript ajax

  1. 客户端(通过XMLHttpRequest请求) - >服务器
  2. 服务器[构建CSV并将其打印在响应的输出流上] - >客户端。
  3. 现在步骤3应该是>客户端的浏览器应显示下载对话框(保存,打开和取消)。由于内容类型是来自服务器的纯文本,并且未设置内容处理,我们可以使用javascript创建文件并提示用户下载吗?

    我知道这个问题有点愚蠢。但没有其他选择。我必须这样做。

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

    这可能吗?

2 个答案:

答案 0 :(得分:1)

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

编辑:更好的是,使用隐藏的iframe。这样,您仍然可以在主页面中执行“加载,请稍候”的事情。

答案 1 :(得分:1)

理论上可以通过使用数据URI的

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