我正在通过 KineticJS's 使用 HTML5 Canvas 和 .toDataURL()
函数.toDataURL()
方法。 Canvas 使用我的用户上传到站点的图像,这些图像存储在不同的机器和子域 farm1.domain.com
上。
问题 当调用 .toDataURL()
时,出现错误
SECURITY_ERR: DOM Exception 18
有解决办法吗?如果用户通过 domain.com
访问页面并且图像托管在 www.domain.com
,我也会遇到同样的问题。
尝试:
我在 virtualhost 中的 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
上的图片时,我仍然遇到同样的错误!在 KineticJS 中有解决这个问题的方法吗?
最佳答案
您需要将 Access-Control-Allow-Origin
header 添加到您正在加载的图像中,而不是添加到正在加载它们的页面中。有关此 header 和一般 CORS 的详细信息,您可能需要阅读“CORS isn't just for XHR”,其中专门讨论了此问题。
关于html - canvas.toDataURL() 导致安全错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329493/