我们有一种字体作为 woff 托管在 S3 上,并通过 CSS 引用。 S3 存储桶配置了 CORS 以允许从任何地方进行跨站点访问。通常,字体显示没有问题。然而,有时 Firefox 无法呈现字体并且错误控制台报告“错误的 URI 或不允许跨站点访问”。我试图弄清楚 FF 用于从 S3 获取字体资源的 HTTP 调用的确切顺序,但没有取得多大成功,因此我可以使用 curl 调试情况。到目前为止,调试
curl -s -I -X OPTIONS --header "Origin: http://www.foo.com"--header "Access-Control-Request-Method: GET"s3.amazonaws.com/字体.woff
仅产生 HTTP 200 响应,即未提供有关可能失败的信息。对于如何弄清楚发生了什么,我有点不知所措。我不知道 S3 是否偶尔会返回对 OPTIONS 请求的虚假 403 响应、对资源本身请求的 403 响应,或者我们的 HTML/CSS 不知何故被巧妙地破坏和/或暴露了 FF 中的错误。有什么建议吗?
最佳答案
这看起来是 firefox 实现的针对 xss(跨站点脚本)攻击的有意预防措施。
在此处了解一种可能的解决方案:Downloadable font on firefox: bad URI or cross-site access not allowed
关于css - FF 偶尔无法加载托管在 s3 上的 Web 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13299737/