我的应用程序访问S3存储桶中的字体文件时出现问题。
以下是我对S3存储桶的CORS策略:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>ETag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
但是在访问我的网站的控制台中,我得到以下内容:
已被CORS政策阻止:没有'Access-Control-Allow-Origin' 标头出现在请求的资源上
答案 0 :(得分:0)
我最终用白名单Access-Control-Allow-Origin
配置了一个CloudFront发行版,其起源为S3,并配置了nginx以包括正确的标题。
Origin请求标头指示提取的来源。它不包含任何路径信息, 但只能使用服务器名称(例如https://www.example.com)。 有关详细信息,请参见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin。
在这里,我们设置Access-Control-Allow-Origin响应标头中包含的值。如果来源是我们已知的主机之一(通过HTTP或HTTPS服务),则允许使用CORS。否则,我们将设置为“ null”值,不允许使用CORS。
map $http_host $cors_origin {
default "null";
"~*^\.example\.com$" "$http_x_forwarded_proto://$http_host";
}