在我们的应用程序中,我们需要实现以下场景:
- 客户端发送请求
- 服务器处理请求并生成文件
- 服务器响应返回文件
- 客户端浏览器显示文件下载弹出对话框并允许用户下载文件
我们的应用程序是基于 ajax 的应用程序,因此我们发送 ajax 请求将非常简单方便(例如使用 jquery.ajax()
函数)。
但是在 googilng 之后,事实证明只有在使用非 ajax POST 请求时才可以下载文件(如 this popular SO thread 中所述)。因此,我们需要实现更丑陋和更复杂的解决方案,需要构建具有嵌套隐藏字段的 form
HTML 结构。
谁能简单解释一下为什么ajax请求不能下载文件?这背后的机制是什么?
最佳答案
这与 AJAX 无关。当然,您可以使用 AJAX 下载文件。但是文件将保存在内存中,即您不能将文件保存到磁盘。这是因为 JavaScript 无法与磁盘交互。这将是一个严重的安全问题,并且在所有主要浏览器中都被阻止。
关于javascript - 为什么无法使用ajax请求下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14682556/