我有一个canvas元素,它在画布上使用getImageData()
和putImageData()
。我的<video>
元素的属性为crossorigin="anonymous"
。
该视频来自S3 / Cloudfront。我的存储桶现在有这个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>
这在Chrome和Firefox中效果很好。我成功地将视频绘制到画布上。
我的问题是Safari和IE(11具体,但据我所知,它是一个IE10 +问题)。
当我在IE或Safari中尝试此操作时,我收到此错误:
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
我理解错误,因为在我设置CORS之前,chrome和firefox都给出了同样的错误。添加CORS为chrome和firefox修复了它,但不修复IE和Safari。
我注意到视频的响应标题不同于说chrome到IE。