canvas.toDataURL()导致安全错误

我通过KineticJS的 .toDataURL()方法使用HTML5canvas和.toDataURL()函数。 canvas使用我的用户上传到网站的图片,这些图片存储在不同的机器和子域farm1.domain.com

问题:调用.toDataURL() ,出现错误

 SECURITY_ERR: DOM Exception 18 

有没有解决的办法? 如果用户通过domain.com访问该页面,并且图像托pipe在www.domain.com我也会遇到同样的问题。

尝试:

我在虚拟主机中的httpd.conf添加了以下内容,并重新启动了apache服务。

 Header add Access-Control-Allow-Origin "http://www.domain.com" Header add Access-Control-Allow-Origin "http://domain.com" Header add Access-Control-Allow-Origin "http://farm1.domain.com" 

domain.com上的页面访问www.domain.com上托pipe的图像时,我仍然遇到同样的错误! KineticJS有没有解决这个问题的方法?

您需要将Access-Control-Allow-Origin标题添加到您正在加载的图像,而不是加载它们的页面。 有关此标题和CORS的详细信息,可能需要阅读“ CORS不仅仅是XHR ”,具体讨论此问题。

这个错误没有办法解决。 从不同域中的画布加载的图像会引发每个浏览器当前实现的错误。 在你的情况下,图像应该存储在同一个域,你不会得到例外。