javascript - 使用 JavaScript 在一个请求中通过 POST 下载文件
问题描述
有时在发出 HTTP 请求从自己的网络服务器下载文件(例如 PDF、XLSX 等)时,需要使用 HTTP 方法 POST,因为它需要动态输入数据。我一直在尝试不同的方法来将其减少到一个 HTTP 请求以获得最佳性能,但未能成功。
由于带有XMLHttpRequest 对象 (AJAX)的 JavaScript不能“下载”文件,我想它需要一个 HTML 解决方法。我为这种情况找到的唯一可行的解决方案是生成一个表单元素,该元素包装包含数据的输入元素。我找不到一种方法如何通过它发送布尔值,因为 AJAX 能够做到。这意味着:它不适合标准化的实现。
我的问题是:如何通过一个可以包含布尔值 (JavaScript) 的 POST 请求下载文件?
如果它很重要:我使用的后端系统是 Ruby on Rails
解决方案
正如@Pointy 提到的,布尔值总是在 HTTP 通信中转换为字符串。在我的问题中我错了。这意味着,将 JavaScript JSON 字符串或经典对象转换为 HTML 表单(然后提交和删除)是可行的!
实际上发送一个 AJAX 请求然后手动触发对生成文件的链接单击具有能够使用进度条的优点。
推荐阅读
- r - RStudio 中的传单:RHTML 文档的内容是静态的,RMarkdown 的内容是动态的
- django - 从 HttpResponse 导入 django.http ^ SyntaxError: invalid syntax
- reactjs - React Semantic UI Modal 未显示
- javascript - React 渲染一个空组件
- node.js - 如何串行链接http请求函数
- php - 从 json 打印 PHP 文本
- node.js - 如何根据用户类型重定向用户
- python - 如何以尽可能少的开销测量多个 GPIO 端口之间的时间变化
- apache-spark - 在 Spark 中对数百万个二进制文件进行分组
- python - 如何以 MSE 最小化的方式收敛权重?