相关文章推荐
追风的小虾米  ·  在 ASP.NET Core ...·  3 周前    · 
文质彬彬的显示器  ·  python ...·  2 年前    · 

向存储桶发出的 CORS 请求中的 Origin 标头必须与 CORS 配置的 AllowedOrigins 元素中的源相匹配。

在向存储桶发出的 CORS 请求的 Access-Control-Request-Method 中指定的 HTTP 方法,必须与在 CORS 配置的 AllowedMethods 元素中列出的一个或多个方法相匹配。

  • 预检请求的 Access-Control-Request-Headers 标头中列出的标头必须与 CORS 配置的 AllowedHeaders 元素中的标头相匹配。

  • 以下是 CORS 配置示例。要创建 CORS 配置,请参阅 配置 CORS 。有关 CORS 配置的更多示例,请参阅 CORS 配置的元素

    有关配置 CORS 规则和对 CORS 规则进行故障排除的指导,请参阅 AWS re:Post 知识中心中的 如何在 Amazon S3 中配置 CORS,并通过 cURL 确认 CORS 规则?

    "AllowedHeaders": [ "Authorization" "AllowedMethods": [ "GET", "PUT", "POST", "DELETE" "AllowedOrigins": [ "http://www.example1.com" "ExposeHeaders": [ "x-amz-meta-custom-header"

    要测试 CORS 配置,可以使用以下 CURL 命令发送预检 OPTIONS 检查。CURL 是一个命令行工具,可用于与 S3 进行交互。有关更多信息,请参阅 CURL

    curl -v -X OPTIONS \ -H "Origin: http://www.example1.com" \ -H "Access-Control-Request-Method: PUT" \ -H "Access-Control-Request-Headers: Authorization" \ -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\ "http://bucket_name.s3.amazonaws.com/object_prefix_name"

    在上面的示例中, curl -v -x OPTIONS 命令用于向 S3 发送预检请求,来查询 S3 是否支持从跨源 http://www.example1.com 发送对于对象的 PUT 请求。标头 Access-Control-Request-Headers Access-Control-Expose-Headers 是可选的。

    为响应预检 OPTIONS 请求中的 Access-Control-Request-Method 标头,如果请求的方法匹配,Amazon S3 会返回受支持方法的列表。

    为响应预检 OPTIONS 请求中的 Access-Control-Request-Headers 标头,如果请求的标头匹配,Amazon S3 会返回受支持标头的列表。

  • 为响应预检 OPTIONS 请求中的 Access-Control-Expose-Headers 标头,如果请求的标头与浏览器中运行的脚本可以访问的受支持标头匹配,Amazon S3 会返回受支持标头的列表。

  • 注意

    发送预检请求时,如果不支持使用任何 CORS 请求标头,则不会返回任何响应 CORS 标头。

    为响应此预检 OPTIONS 请求,您将收到 200 OK 响应。有关测试 CORS 时收到的常见错误代码以及解决 CORS 相关问题的更多信息,请参阅 CORS 问题排查

    < HTTP/1.1 200 OK < Date: Fri, 12 Jul 2024 00:23:51 GMT < Access-Control-Allow-Origin: http://www.example1.com < Access-Control-Allow-Methods: GET, PUT, POST, DELETE