画布被CORS图像污染了

时间:2013-02-21 16:36:51

标签: javascript canvas cross-domain cors pixastic

我在使用带有画布(Pixastic)的启用CORS的图像时遇到问题。

在服务器上我有

Header set Access-Control-Allow-Origin "*"

在我的htaccess文件中。

在客户端,我尝试在HTML中设置crossorigin属性,如下所示:

<img src="http://myseconddomain/image.jpg" crossorigin="anonymous" />

没有成功。  之后我尝试了Pixastic的代码:

var el = elements[i];
el.crossOrigin = 'anonymous';

也不起作用。

我也禁用了chrome的缓存,但它没有帮助。

Chrome正在记录:

Uncaught Error: SECURITY_ERR: DOM Exception 18 
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.

即使HTML看起来很好(设置了crossorigin属性),图片标题看起来还不错(Access-Control-Allow-Origin)... 我不知道下一步该尝试什么,所以欢迎任何建议!

很遗憾,我无法提供任何链接,因为您可以猜到这个应用程序远没有生产。

1 个答案:

答案 0 :(得分:2)

我找到了一种方法,我会在这里发布,所以希望有一天它会帮助某人。

碰巧我没有弄乱Pixastic代码中的正确功能,因为init()函数并不总是按照我的想法调用。

我在Pixastic.process()函数中添加了以下行:

dataImg.crossOrigin = "anonymous";

它就是诀窍。