我有一个将 ajax POST 请求发送到某个 URL 的 javascript 应用程序。响应可能是 JSON 字符串,也可能是文件(作为附件)。我可以在我的 ajax 调用中轻松检测 Content-Type 和 Content-Disposition,但是一旦我检测到响应包含一个文件,我如何让客户端下载它?我在这里阅读了许多类似的主题,但没有一个提供我正在寻找的答案。
请,请,请不要发布建议我不应该为此使用 ajax 或我应该重定向浏览器的答案,因为这都不是一个选项。使用纯 HTML 表单也不是一种选择。我需要的是向客户端显示一个下载对话框。这可以做到吗?怎么做?
原文由 Pavle Predic 发布,翻译遵循 CC BY-SA 4.0 许可协议
创建一个表单,使用 POST 方法,提交表单 - 不需要 iframe。当服务器页面响应请求时,为文件的 mime 类型编写响应标头,它将显示一个下载对话框 - 我已经这样做了很多次。
您想要应用程序/下载的内容类型 - 只需搜索如何为您使用的任何语言提供下载。