问题
Access to image at ‘’ from origin ‘’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
解决方案
一、配置R2 CORS 策略
[
{
"AllowedOrigins": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedHeaders": [
"*"
],
"ExposeHeaders": [
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
二、配置转换规则-修改响应头
注意:此处填的是Cloudflare 自定义域名(指向R2存储桶)
三、清除缓存
四、验证
使用 curl -I 验证 R2访问下载地址响应头是否存在Access-Control-Allow-Origin,如存在则已解决
五、参考
- https://community.cloudflare.com/t/r2-cors-error/572841
- https://community.cloudflare.com/t/problem-with-settings-cors-policies-on-r2/432339/68?page=2
- https://community.cloudflare.com/t/r2-does-not-add-vary-origin-header-which-breaks-future-cors-requests/660056