2013-11-01 39 views
0

我需要一种方法在返回Post的AJAX响应时“强制”下载文件。我不能使用window.open(),因为我没有一个有用的URL。以Javascript强制下载的方法

有什么方法可以使用Javascript或Dojo工具包强制下载HTTP响应文件?

+0

号返回的文件与应用程序'/八位字节stream' MIME类型和保存,这将弹出 – mplungjan

+0

服务器告诉它使用的应用程序/八位字节流来强制下载。某些浏览器喜欢显示某些文件,例如Chrome和PDF。您可能必须在服务器上添加出站规则才能覆盖该规则。 – Popnoodles

+0

当然,只需使用ajax而不是表单来获取响应作为字符串。然后只需下载字符串。 http://danml.com/js/download.js将让你保存一个字符串作为一个文件。你也可以通过简单地给窗体一个目标=“_ blank”来实际使用一个弹出窗口(比如window.open) – dandavis

回答

0

您的服务器需要添加Content-Type和Content-Disposition标头才能强制下载。

Content-Type: application/octet-stream 
Content-Disposition: attachment; filename=filename.ext