我看到使用curl和浏览器(FF和Chrome)从服务器返回的不同头文件。CORS AWS S3和cloudfront
卷曲返回CORS头
curl -X GET -I -H "Origin: https://qa.gameofshred.com" https://s3-ap-southeast-1.amazonaws.com/gameofshred-qa/site/fontawesome-webfont.912ec66d7572ff821749.svg --verbose
> GET /gameofshred-qa/site/fontawesome-webfont.912ec66d7572ff821749.svg HTTP/1.1
> User-Agent: curl/7.29.0
> Host: s3-ap-southeast-1.amazonaws.com
> Accept: */*
> Origin: https://qa.gameofshred.com
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< x-amz-id-2: m9oDqyGs0K+0IBnygQlGE9IEeVZQcpIf1nYSWYYu5NU5Hu3gNEUy8SfWnO/mFiK8nPIBPlDhWec=
x-amz-id-2: m9oDqyGs0K+0IBnygQlGE9IEeVZQcpIf1nYSWYYu5NU5Hu3gNEUy8SfWnO/mFiK8nPIBPlDhWec=
< x-amz-request-id: 135C9D56C2C0D604
x-amz-request-id: 135C9D56C2C0D604
< Date: Wed, 19 Apr 2017 02:37:34 GMT
Date: Wed, 19 Apr 2017 02:37:34 GMT
< Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET
Access-Control-Allow-Methods: GET
< Access-Control-Max-Age: 3000
Access-Control-Max-Age: 3000
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
< Last-Modified: Tue, 18 Apr 2017 23:02:06 GMT
Last-Modified: Tue, 18 Apr 2017 23:02:06 GMT
< ETag: "912ec66d7572ff821749319396470bde"
ETag: "912ec66d7572ff821749319396470bde"
< Accept-Ranges: bytes
Accept-Ranges: bytes
< Content-Type: image/svg+xml
Content-Type: image/svg+xml
< Content-Length: 444379
Content-Length: 444379
< Server: AmazonS3
Server: AmazonS3
浏览器,另一方面不包含任何CORS标头。
请求:
GET /gameofshred-qa/site/fontawesome-webfont.912ec66d7572ff821749.svg HTTP/1.1
Host: s3-ap-southeast-1.amazonaws.com
Origin: https://qa.gameofshred.com
Accept: */*
User-Agent: curl/7.29.0
Cache-Control: no-cache
响应:
Accept-Ranges → bytes
Content-Length → 444379
Content-Type → image/svg+xml
Date → Wed, 19 Apr 2017 02:32:37 GMT
ETag → "912ec66d7572ff821749319396470bde"
Last-Modified → Tue, 18 Apr 2017 23:02:06 GMT
Server → AmazonS3
x-amz-id-2 → O0V/q2q9vSKQgJWKUL8LfsQghKlyBS90fTYDt9TLcgJimjeCUKg57+UwgAnWym8tJRPpGsRutG0=
x-amz-request-id → 5EA7299EC61D0E86
任何解释?谢谢。
UPD: 正如我建议我更新Cors配置。它并没有帮助
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>55</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
UPD 2: 显然是由两个方面原因 1)CDN缓存 2)使用邮差检查CORS导致的问题。邮差(浏览器版本)总是将ORIGIN替换为“chrome:// extensions ....”之类的东西,所以我们不能用它来进行测试。
一点也没有” t帮助...仍然一样 –
@ArtemIbragimov当我在AWS中编辑CORS配置时,在查看正确的标题之前需要一点时间。不知道这是否是你的情况,但它永远不会等待。 –
这就是为什么我更新MaxAgeSeconds,所以我可以肯定知道更改发生的时间..我看到更新“访问控制 - 最大年龄”在卷曲,但浏览器仍然是相同的 –