【发布时间】:2018-01-13 15:36:34
【问题描述】:
我对使用 Cloudfront + S3 的 CORS 有一个非常奇怪的行为
当我跑步时
curl -I -s -X GET -H "Origin: https://myapp.com" https://s3.amazonaws.com/myapp/assets/fontawesome-webfont.woff | grep Access
和
curl -I -s -X GET -H "Origin: https://**www.**myapp.com" https://s3.amazonaws.com/myapp/assets/fontawesome-webfont.woff | grep Access
两者都按预期返回值:
访问控制允许来源:https://musicjungle.com.br
Access-Control-Allow-Methods: GET Access-Control-Expose-Headers: ETag
访问控制最大年龄:3000 访问控制允许凭据:真
变化:来源、访问控制请求标头,
访问控制请求方法
但是当我尝试使用 Cloudfront URL 运行相同的 curl 时,只有 www 子域有效
curl -I -s -X GET -H "Origin: https://www.myapp.com" https://d1bfllp5zjnl7u.cloudfront.net/assets/fontawesome-webfont.woff | grep Access
访问控制允许来源:https://www.musicjungle.com.br
访问控制允许方法:GET、PUT、POST、DELETE、HEAD
访问控制最大年龄:3000 访问控制允许凭据:真
以下命令未按预期返回标头
curl -I -s -X GET -H "Origin: https://myapp.com" https://d1bfllp5zjnl7u.cloudfront.net/assets/fontawesome-webfont.woff | grep Access
知道为什么会发生这种情况吗?我已经在 S3 CORS 配置上允许两台服务器的 Origin(如我们在上面看到的),但它似乎是 Cloudfront 配置上的东西,只允许“www.myapp.com”。
【问题讨论】: