无法在WebGL中从S3存储桶渲染图像

时间:2015-04-24 16:22:43

标签: javascript amazon-s3 cors webgl

当我的JavaScript应用程序试图从我的Amazon S3帐户加载图像并在WebGL中呈现它时,浏览器会抛出CORS错误。我更改了S3存储桶的CORS配置以允许访问:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

不幸的是,当我尝试从S3存储桶渲染图像时,浏览器仍会抛出CORS错误。

我错过了一步吗?或者,这是正常的吗?换句话说,WebGL是否总是拒绝跨域文件,无论文件域是否允许通过适当的CORS配置进行访问?

1 个答案:

答案 0 :(得分:1)

According to MDN

  

为了使用CORS作为WebGL纹理加载它,我们在其上设置了crossOrigin属性:

var earthImage = new Image();
earthImage.crossOrigin = "anonymous";
  

现在我们像往常一样加载它:

earthImage.onload = function() {
  // whatever you usually to do load WebGL textures
};
earthImage.src = "http://khm0.googleapis.com/kh?v=95&x=0&y=0&z=0";