CORS 问题排查
如果您在访问设置有 CORS 配置的存储桶时遇到意外行为,请尝试执行以下步骤来排查问题:
-
验证对存储桶设置的 CORS 配置。
如果设置了 CORS 配置,则控制台在 Properties (属性) 存储桶的 Permissions (权限) 部分中显示 Edit CORS Configuration (编辑 CORS 配置) 链接。
-
使用您选择的工具捕获完整请求和响应。对于 Amazon S3 收到的每个请求,必须存在一个与请求中的数据匹配的 CORS 规则,如下所示:
-
验证请求是否具有源标头。
如果缺少该标头,则 Amazon S3 不会将请求视为跨源请求,并且不会在响应中发送 CORS 响应标头。
-
验证请求中的源标头是否与指定
AllowedOrigin
中的至少一个CORSRule
元素匹配。源请求标头中的方案、主机和端口值必须与
AllowedOrigin
中的CORSRule
元素匹配。例如,如果设置CORSRule
以允许源http://www.example.com
,则请求中的https://www.example.com
和http://www.example.com:80
都与配置中允许的源不匹配。 -
验证请求中的方法 (在预检请求中,则为在
Access-Control-Request-Method
中指定的方法) 是否为同一AllowedMethod
中的CORSRule
元素之一。 -
对于预检请求,如果请求包含
Access-Control-Request-Headers
标头,请验证对于CORSRule
标头中的每个值,AllowedHeader
是否包含Access-Control-Request-Headers
条目。
-