通过 CloudFront 的 S3 CORS 在 Firefox 中不起作用

通过 CloudFront 的 S3 CORS 在 Firefox 中不起作用

我使用S3 CORS来提供字体。如果S3使用域名来提供字体,则它在 中有效Firefox,但CloudFront使用 时则无效。适用于Google Chrome

我的CORS配置S3

<?xml version="1.0" encoding="UTF-8"?>
 <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
 <CORSRule>
     <AllowedOrigin>http://*.example.com</AllowedOrigin>
     <AllowedMethod>GET</AllowedMethod>
     <MaxAgeSeconds>30000</MaxAgeSeconds>
     <AllowedHeader>Content-*</AllowedHeader>
     <AllowedHeader>Host</AllowedHeader>
 </CORSRule>
 <CORSRule>
     <AllowedOrigin>https://*.example.com</AllowedOrigin>
     <AllowedMethod>GET</AllowedMethod>
     <MaxAgeSeconds>30000</MaxAgeSeconds>
     <AllowedHeader>Content-*</AllowedHeader>
     <AllowedHeader>Host</AllowedHeader>
 </CORSRule>
</CORSConfiguration>

答案1

为了使它正常工作,我必须设置 CORS 配置以包含 CloudFront 分发域。

我还必须更改 CloudFront 分发行为中的设置,以允许转发查询字符串。我不记得在哪里看到过这样的要求。

然后我使导致问题的字体无效。

然后我们就可以出发了!

希望有帮助

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>https://*.domain.com</AllowedOrigin>
        <AllowedOrigin>http://*.domain.com</AllowedOrigin>
        <AllowedOrigin>http://d2e7ljkkwgm4dt.cloudfront.net</AllowedOrigin>
        <AllowedOrigin>http://dpibywtcfxy6z.cloudfront.net</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Content-*</AllowedHeader>
        <AllowedHeader>Host</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

相关内容