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

回到顶部