无法使用Firefox下载Blob文件,但在Chrome中可以下载?

10

这是我的下载代码:

var mimeType = this.getMime(obj);
var ab = this.base64ToArrayBuffer(obj[key]);
var blob = new Blob([ab.buffer], {
    type : mimeType
});
var result = this.bintostring(blob);
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = result.filename;
a.target = '_blank';
a.click();
window.URL.revokeObjectURL(url);

调试期间,我没有看到任何异常。


根据这个链接:https://dev59.com/a10a5IYBdhLWcg3wHlik#30708820,在撤销URL之前需要添加一个等待。这对我有用。 - Avneesh
1个回答

13

对于Firefox,必须手动将文件附加到文档中。与Chrome不同,Firefox不会自动执行此操作。

a.download = result.filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);

2
嗨,我在Firefox中仍然遇到错误,但在Chrome中它可以正常工作。我已按上面建议的方法在我的主体中添加了锚点。错误详细信息如下:内容安全策略:页面的设置阻止了在blob:https://<Ip address>/4c3d3e21-f443-7449-a96f-61c7f94f7570(“frame-src”)加载资源。 - Rahul Tokase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接