CORS 问题排查 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

CORS 问题排查

如果您在访问设置有 CORS 配置的存储桶时遇到意外行为,请尝试执行以下步骤来排查问题:

  1. 验证对存储桶设置的 CORS 配置。

    如果设置了 CORS 配置,则控制台在 Properties (属性) 存储桶的 Permissions (权限) 部分中显示 Edit CORS Configuration (编辑 CORS 配置) 链接。

  2. 使用您选择的工具捕获完整请求和响应。对于 Amazon S3 收到的每个请求,必须存在一个与请求中的数据匹配的 CORS 规则,如下所示:

    1. 验证请求是否具有源标头。

      如果缺少该标头,则 Amazon S3 不会将请求视为跨源请求,并且不会在响应中发送 CORS 响应标头。

    2. 验证请求中的源标头是否与指定 AllowedOrigin 中的至少一个 CORSRule 元素匹配。

      源请求标头中的方案、主机和端口值必须与 AllowedOrigin 中的 CORSRule 元素匹配。例如,如果设置 CORSRule 以允许源 http://www.example.com,则请求中的 https://www.example.comhttp://www.example.com:80 都与配置中允许的源不匹配。

    3. 验证请求中的方法 (在预检请求中,则为在 Access-Control-Request-Method 中指定的方法) 是否为同一 AllowedMethod 中的 CORSRule 元素之一。

    4. 对于预检请求,如果请求包含 Access-Control-Request-Headers 标头,请验证对于 CORSRule 标头中的每个值,AllowedHeader 是否包含 Access-Control-Request-Headers 条目。