Javascript:如何通过Firefox浏览器从API服务器下载zip

Javascript: How to download zip from API server via Firefox browser?

本文关键字:API 服务器 下载 zip 浏览器 何通过 Firefox Javascript      更新时间:2023-09-26

目前,我已经实现了以下,它在Chrome浏览器上工作。但是在Firefox浏览器上,它从API服务器获得响应,但是没有任何东西被下载到Firefox浏览器。

我做错了什么?以下内容是否不兼容?

提前谢谢你

代码如下:

var config = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify(...)
}
fetch("https://test-server.com:8080/download/zip", config)
      .then(response => response.blob())
      .then(zipFile => {
        console.log(zipFile)
        var blob = zipFile;
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = 'download'
        link.click();
      })
      .catch((error) => {
        console.log("Error: ", error)
      })

在Chrome上,console.log(zipFile)将记录类似:Blob {size: 504188, type: "application/zip"},但在Firefox上,它记录Blob {size: 504188, type: "" }

可能是因为link元素没有附加到body上吗?

当我尝试以下操作时,它在Chrome中工作,但在Firefox中不工作(就像你正在经历的那样):

link = document.createElement('a')
link.href = 'http://google.com'
link.click()

,

link = document.createElement('a')
link.href = 'http://google.com'
document.body.appendChild(link)
link.click()

在Firefox中也可以使用