javascript - 为什么无法使用ajax请求下载文件?

标签 javascript ajax post download

在我们的应用程序中,我们需要实现以下场景:

  1. 客户端发送请求
  2. 服务器处理请求并生成文件
  3. 服务器响应返回文件
  4. 客户端浏览器显示文件下载弹出对话框并允许用户下载文件

我们的应用程序是基于 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/

相关文章:

JavaScript 不适用于高于 Chrome mobile 45 的版本

javascript - 寻找在 Node.js 中发布数千个 HTTP 请求的有效方法

php - Woocommerce 多个结账页面

c# - 使用 C#、RestSharp、Redmine API 通过 POST 调用上传文件

php - 如何使用 PHP 变量中的提交按钮存储到数据库?

javascript - 不可见的 reCaptcha : can't make a working AJAX call, 得到无限循环

javascript - D3js 随时间绘制?

javascript - 使用 redux 进行 react native 设置状态

javascript - 通过AJAX更新mysql表的问题

javascript - 这是无效的 JSON 吗?