5

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

问题:.toDataURL()被调用时,我得到了错误

SECURITY_ERR: DOM Exception 18 

有没有解决的办法?如果用户通过访问页面domain.com并且图像托管在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"

www.domain.com从页面上访问托管的图像时,我仍然遇到相同的错误domain.com!在 KineticJS 中有没有办法解决这个问题?

4

2 回答 2

1

您需要将Access-Control-Allow-Origin标题添加到正在加载的图像中,而不是添加到正在加载它们的页面中。有关此标头以及一般 CORS 的详细信息,您可能需要阅读“ CORS 不仅适用于 XHR ”,其中专门讨论了此问题。

于 2013-01-15T07:35:22.800 回答
0

没有办法解决这个错误。从不同域加载到画布中的图像将引发此错误,因为每个浏览器当前都实现了此错误。在您的情况下,图像应该存储在同一个域中,并且您不会遇到异常。

于 2013-01-15T06:54:53.177 回答