我通过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 ”,具体讨论此问题。
这个错误没有办法解决。 从不同域中的画布加载的图像会引发每个浏览器当前实现的错误。 在你的情况下,图像应该存储在同一个域,你不会得到例外。