我有一个奇怪的问题。首先,我需要告诉我,我阅读了有关此问题的所有文章,这些文章与CloudFront和S3的设置有关,而且不是我的情况。
我通过签名的cookie配置了对存储桶中文件的访问权限,当我从浏览器发出请求时,文件立即打开,但没有 Access-Control-Allow-Origin 在回应中。 当我将已签名的Cookie更改为已签名的网址时,我开始在响应中获取此标头,而不更改任何其他CORS权限和设置。
我该如何解决这个奇怪的错误?你有没有看到同样的行为?
我的设置&配置:
1) Cookies sets for ".mydomain.com", I make requests from "application.mydomain.com" to "cf.mydomain.com" (it's a mapped CNAME for cloudfront distribution)
2) S3 CORS settings
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://application.mydomain.com</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Also I used instead of
<AllowedOrigin>http://application.mydomain.com</AllowedOrigin>
some other options as
<AllowedOrigin>*</AllowedOrigin>
<AllowedOrigin>http://*.mydomain.com</AllowedOrigin>
but without success.
3) Cloudfront settings
-Viewer Protocol Policy
HTTP and HTTPS
-Allowed HTTP Methods
GET, HEAD
-Cached HTTP Methods
GET, HEAD (Cached by default)
-Forward Headers
Whitelist
-Whitelist Headers
Access-Control-Request-Headers
Access-Control-Request-Method
Origin
-Forward Cookies
All
-Forward Query Strings
Yes
答案 0 :(得分:1)
如果您使用jquery库,请不要忘记设置
xhrFields: {withCredentials: true}
它帮助了我。