从 S3 下载图像时出现 Cors 错误

vbo*_*tio 4 javascript amazon-s3

我正在将 div 转换为可下载的图像。

function generateBanner() {
    domtoimage.toBlob(document.getElementById('wrapper'))
    .then(function(blob) {
      console.log("blob", blob)
      window.saveAs(blob, 'my-node.png');
    });
}
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常。我的问题是当这个 div 具有托管在 S3 存储桶中的图像时

例如:

<article id="wrapper">
    <p>{{ title }}</p>
    <img class="logo" src="{{ logo }}" alt="">
    <aside class="exclusive" ng-if="exclusive"></aside>
    <aside class="off" ng-if="percentoff">{{ percentoff }}
    </aside>
    <div class="produtos">
        <img src="https://s3-sa-east-1.amazonaws.com/teste-img-roge/Thumbs/0026954_30510_1_415.jpeg" alt="">
    </div>
    <aside class="valid" ng-if="valid"></aside>
    </article>
Run Code Online (Sandbox Code Playgroud)

之后,当我单击时,出现 CORS 错误,但我不知道为什么。

在我的 s3 配置中,我有这个:

<CORSConfiguration>
   <CORSRule>
 <AllowedOrigin>*</AllowedOrigin>
  <AllowedMethod>GET</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <MaxAgeSeconds>3000</MaxAgeSeconds>
   <AllowedHeader>*</AllowedHeader>
   </CORSRule>
   </CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

仍然是同样的错误。任何想法 ?我在 s3 中尝试了几种不同的配置,也尝试了几种使用 javascript 的方法,但都不起作用。

Mar*_*nde 8

你失踪了<AllowedMethod>HEAD</AllowedMethod>

然后您应该看到以下标题:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, HEAD, POST
Access-Control-Max-Age: 3000
Run Code Online (Sandbox Code Playgroud)

请记住,您可能需要一段时间才能看到正确的标头。