有人设法在响应头中添加Access-Control-Allow-Origin吗? 我需要的是这样的东西:

<img src="http://360assets.s3.amazonaws.com/tours/8b16734d-336c-48c7-95c4-3a93fa023a57/1_AU_COM_180212_Areitbahn_Hahnkoplift_Bergstation.tiles/l2_f_0101.jpg" />

这个get请求应该在响应中包含Access-Control-Allow-Origin: *

我的CORS设置桶看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

正如您所期望的那样,没有Origin响应头。


当前回答

我尝试了很多方法来解决这个问题,但最后,我还是这么做了

url.replace(/^https:\/\//i, "http://");

我不知道为什么,但这对我很有效。 如果您从s3存储桶中获取图像为“BLOB”,请执行此操作。

其他回答

为了它的价值,我有一个类似的问题-当试图添加一个特定的允许原点(不是*)。

结果我不得不纠正

<AllowedOrigin>http://mydomain:3000/</AllowedOrigin>

to

<AllowedOrigin>http://mydomain:3000</AllowedOrigin>

(注意URL中的最后一个斜杠)

希望这对大家有所帮助

<AllowedOrigin>*</AllowedOrigin>

这不是一个好主意,因为使用*将授予任何网站访问bucket中的文件的权限。相反,您应该指定确切允许哪个源使用bucket中的资源。通常,这是你的域名

<AllowedOrigin>https://www.example.com</AllowedOrigin>

或者如果你想包含所有可能的子域:

<AllowedOrigin>*.example.com</AllowedOrigin>

S3现在期望规则是Array Json格式。

你可以在s3桶中找到这个->权限然后->向下滚动->()跨起源资源共享(CORS)

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

我尝试了很多方法来解决这个问题,但最后,我还是这么做了

url.replace(/^https:\/\//i, "http://");

我不知道为什么,但这对我很有效。 如果您从s3存储桶中获取图像为“BLOB”,请执行此操作。

我最近遇到了同样的问题,似乎AWS对我们定义CORS配置的方式做了一些更改。例如,如果你想允许某些方法在过去的S3桶上,你必须在编辑器上做这样的事情:

下面的配置与上面的配置相同,但采用数组的形式。

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "HEAD",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]