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

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

目前,我已经实现了以下内容,并且可以在 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 中工作。