如何解决使用 Javascript 直接下载 POST 响应
我有一个接受 POST 请求并返回任意大小的 zip 文件的服务。我想从网页向该服务发送 POST 请求并启动响应下载。
由于 zip 文件可能很大,我需要立即启动下载,让浏览器开始写入磁盘。到目前为止,我看到的 javscript 解决方案将下载作为链接附加到文档中,然后在下载完成后通过单击链接启动下载 - 这对我不起作用。
有没有办法在 javascript 中做到这一点?
解决方法
执行此操作的常用方法如下:
- 从客户端发出发布请求,并在服务器上使用随机 ID (UUID) 将请求存储在数据库中。
- 回复帖子的 URL 是唯一链接 /download/[UUID]
- 从客户端使用 window.open([唯一 URL]) 这将立即从客户端浏览器中的新 URL 下载文件。
- 在服务器上使端点响应唯一的 URL,获取 UUID,使用 UUID 从数据库读取并使用文件进行响应,确保将 HTTP 标头设置为下载(这会强制客户端下载而不是比打开)。
为了安全起见,存储在数据库中的请求可以有一个时间戳,如果 x 时间已经到期,GET 端点可能会失败下载 - 导致下载后 URL 有缺陷。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。