0

我正在尝试使用锚标记下载我存储在 Prismic.io CMS 中的文件。但是,每当我单击链接时,它都会打开文件而不是下载文件。我不确定我做错了什么,这是我的代码:

注意: item.download.url 返回托管在 aws 上的链接:https ://wroomdev.s3.amazonaws.com/tutoblanktemplate%2F97109f41-140e-4dc9-a2c8-96fb10f14051_star.gif?auto=compress,format

<a href={`${item.download.url}`}
   download
>
   <FaDownload
     style={{
       fontSize: "32px",
       marginBottom: "10px",
     }}
   />
</a>
4

2 回答 2

1

该问题可能是由同源策略引起的。

同源策略是一种关键的安全机制,它限制从一个源加载的文档或脚本如何与另一个源的资源进行交互。它有助于隔离潜在的恶意文档,减少可能的攻击媒介。

下载由同源控制。

下载仅适用于同源 URL,或 blob: 和 data: 方案

要解决这个问题,您有两个选择: 1. 以某种方式通过同一来源访问文件。2. 利用 Blob。

于 2020-01-10T03:06:36.210 回答
1

我猜你不需要做出反应来实现这一点,因为你可以使用 HTML5 下载属性触发下载。像这样的东西:

<a href={`${item.download.url}`} download="the_file_name">
    <FaDownload
     style={{
       fontSize: "32px",
       marginBottom: "10px",
     }}
   />
   download
</a>
于 2020-01-10T00:05:51.187 回答