锚标记上的下载属性已停止在跨域上工作

时间:2018-03-29 08:55:32

标签: javascript html download attributes anchor

从最近几天开始,我发现anchor tag上的download属性已经停止在跨域工作,而不是从该跨域下载内容,我们被重定向到查看该内容。

使用js的任何变通方法都将受到赞赏。

代码:

var a = document.createElement('a'); 
a.href = selectedStore.pdfLink; 
a.download = 'Sample.pdf'; 
a.style.display = 'none'; 
document.body.appendChild(a); 
a.click(); document.body.removeChild(a); 

如果除了stackoverflow之外的任何域,则href将打开文档而不是下载它。

1 个答案:

答案 0 :(得分:0)

我注意到跨域PDF文档存在类似问题。

我能够通过在PDF文档中添加http标头来解决此问题:

Content-Disposition: attachment; filename="Sample.pdf"

如果您的PDF文档存储在例如S3中,则可以轻松地手动添加标题以及以编程方式添加标题(在文档的初始上载期间)。如果您无法控制PDF文档HTTP标头,则需要另一种解决方案。