Chrome 最近的更新已开始阻止来自我们网站的 XLSX 下载。
我已经阅读了 Chrome 的文档和指南,了解它们如何确定某些东西是否具有潜在危害,但没有提及如何解决除与他们联系之外的问题。我们的文件和我们的网站符合它们列出的所有准则。他们的大部分文档都基于可执行下载,因此不清楚这些信息如何影响简单的文件下载。
站点和文件使用 HTTPS 从同一主机提供。下载由链接到提供文件的 API 的锚标记驱动。
其他为相同数据生成的 CSV 文件或 PDF 文件提供服务的类似 API 不受影响。
我还修改了我们的文件生成以输出 XLS 文件而不是 XLSX,但这些文件也被阻止了。
以下是响应的标题,据我所知,有关处置或内容类型的所有内容都是正确的,因此我没有看到 chrome 使用这些标题来阻止文件。
Cache-Control: must-revalidate, private
Connection: keep-alive
Content-disposition: attachment; filename="test-file.xlsx"
Content-Type: application/xlsx
Date: Fri, 17 Jul 2020 16:04:41 GMT
Expires: -1
Server: nginx
transfer-encoding: chunked
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
我还验证了这些文件实际上并不危险,它们包含简单的 excel 数据并且没有任何奇怪的东西被注入或受到损害。
我们还测试了各种下载方法,直接锚链接,表单帖子,blob 等。它总是被阻止。
是否有特定的请求/响应标头或下载方法或我缺少的标志会阻止 chrome 阻止文件?
更新
我已确认此问题影响了 83.x 版本的 chrome 以及最新版本 84.0.4147.89
感谢@Alex,我们已确认 Linux 或 Windows 版本的 Chrome 上不存在此问题。仅限 OSX。
该问题在今天早些时候消失了 20-30 分钟,然后又出现了。
用户报告该问题一直存在于 …