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

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

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

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

这可能吗?

4

2 回答 2

1

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

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

于 2012-11-09T03:38:34.647 回答
1

从理论上讲,通过使用 Data URI's 是可能的

<a download = "yourfile.csv" href="data:application/octet-stream;charset=YOURCHARSET;base64,BASE64allthedata">Generate</a>
于 2012-11-09T03:47:16.697 回答