当我的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配置进行访问?
答案 0 :(得分:1)
为了使用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";