【问题标题】:Ajax/Javascript - File DownloadAjax/Javascript - 文件下载
【发布时间】:2012-10-29 09:35:38
【问题描述】:
  1. 客户端(通过 XMLHttpRequest 请求)-> 服务器。
  2. 服务器 [构建 CSV 并将其打印在响应的输出流中] -> 客户端。

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

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

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

这可能吗?

【问题讨论】:

    标签: javascript ajax


    【解决方案1】:

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

    编辑:更好的是,使用隐藏的iframe。这样,你仍然可以在主页中做一个花哨的“正在加载,请稍候”。

    【讨论】:

      【解决方案2】:

      理论上可以通过使用数据 URI 来实现

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 2010-12-05
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多