浏览器不显示来自AWS CloudFront的CORS标头,但可通过Curl显示标头

时间:2017-08-13 17:38:25

标签: amazon-web-services amazon-s3 amazon-cloudfront

使用s3和cloudFront播放视频,我在s3存储桶上配置了CORS,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>DOMAIN</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

我还添加了使用CloudFront分发白名单转发原始标题,但仍然无法在响应标题中找到标题。

但是当我卷曲相同的网址时,我会看到标题,我错过了什么?

欢呼,

1 个答案:

答案 0 :(得分:0)

除了Origin之外,还需要将Access-Control-Request-HeadersAccess-Control-Request-Method都添加到标头白名单中。然后,请记住要创建失效并等待一段时间。

现在,对于给定的相同URL请求,将基于Origin * Access-Control-Request-Method * Access-Control-Request-Headers的组合来缓存。

使用curl测试您的CORS规则。如果www.example.com是允许的原点,则以下输出应包括Access-Control-Allow-Origin: http://www.example.com

curl -H "Access-Control-Request-Method: GET" -H 'Origin: http://www.example.com' --head