aws-sdk抱怨实际存在的cors头缺失
使用webpack运行开发服务器,我试图列出S3存储桶中的项目,并在浏览器中使用javascript aws-sdk控制台输出结果。aws-sdk抱怨实际存在的cors头缺失
这样做时,我得到这个错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://bucketname.s3.amazonaws.com/?list-type=2&max-keys=2. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
但是我有一个头在的WebPack开发服务器的配置设置,以证明:
curl -I http://localhost:8080 HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, content-type, Authorization
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 7170
Vary: Accept-Encoding
Date: Sat, 02 Dec 2017 16:15:04 GMT
Connection: keep-alive
所以,我想*的一切:
HTTP/1.1 404 Not Found X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: *
如果标题在那里,错误是说它的缺失,它可以是授权的东西吗?
如果它确实是标题设置,如果标题实际存在,下一步是什么?
最新通报****
1:添加CORS S3上设置,虽然我相信它的头抱怨不会在S3:
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
也斗不公开或启用静态主机。
2:这工作:
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
从URL被标记的答案给出
回答:
希望看完这可以帮助:http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
你如何设置你的CORS,是使用XML它文件?
回答:
您在S3存储桶配置上设置了CORS。在AWS管理控制台上登录。去S3桶;在右边你会发现选项
回答:
的原因,你的第一个例子没有工作是这个CORS常见的请求头:
<AllowedHeader>Authorization</AllowedHeader>
Common Request Headers
基本上你有你的CORS策略写入的方式是,所有的请求要求授权标题存在。例如:
Authorization: AWS AWSAccessKeyId:Signature
的解决方案是将其改为:
<AllowedHeader>*</AllowedHeader>
How Does Amazon S3 Evaluate the CORS Configuration On a Bucket?
When Amazon S3 receives a preflight request from a browser, it evaluates the CORS configuration for the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met:
- 请求的来源头必须的AllowedOrigin元件相匹配。
- 在预检OPTIONS请求的情况下,请求方法(例如,GET或PUT)或Access-Control-Request-Method标头必须是AllowedMethod元素之一。
- 预检规范请求中的请求的Access-Control-Request-Headers标头中列出的每个标头必须与AllowedHeader元素相匹配。
Cross-Origin Resource Sharing (CORS)
以上是 aws-sdk抱怨实际存在的cors头缺失 的全部内容, 来源链接: utcz.com/qa/257372.html