aws s3存储桶获取推荐人策略:跨源时严格源

bor*_*net 6 amazon-s3 amazon-ec2 amazon-web-services referrer-policy

所以我们使用 S3 存储桶,当尝试获取资源时,我在 Chrome 中得到:

Referrer Policy: strict-origin-when-cross-origin
Run Code Online (Sandbox Code Playgroud)

我已经申请到S3桶:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]
Run Code Online (Sandbox Code Playgroud)

也适用于 CloudFront:

在此输入图像描述

但仍然没有运气,继续出现下面的错误。我正在尝试基本上禁用 CORS 并允许任何来源。

在此输入图像描述

谢谢。

Ste*_*hen 1

我遇到了完全相同的问题,经过几个小时的头撞墙后,我发现 Chrome 的 HTTP 缓存机制阻止了标Origin头的发送。这是 Chrome 特有的问题,因为我无法使用 Safari 重现它。您可以通过切换Chrome 开发者工具“网络”选项卡下的“禁用缓存”选项来检查您是否也遇到这种情况。

要强制您的请求忽略缓存,请使用适当的cache选项(文档)。这是我最终的工作代码:

fetch(url, {
  method: 'GET',
  mode: 'cors',
  cache: 'no-store', // IMPORTANT: for some reason Chrome's caching doesn't send Origin
})
Run Code Online (Sandbox Code Playgroud)