-->

是否有可能避免“手术是不安全的”使用Canvas什么时候?(Is it possible to av

2019-10-18 09:38发布

我有一个HTML画布(使用KineticJS,但帆布爱好者还是应该附和)从另一个域加载一个图像,它放置到画布上,并覆盖其他一些信息,产品的最终图像。 当我尝试使用canvas.toDataURL()来输出的文件,我收到消息“操作是不安全的。”,显然是由于跨域限制。

我想知道是否有人的任何方法知道要解决此错误(最好是跨浏览器兼容)。 我在想一个解决办法是到画布复制到另一个画布,有点像一个截图,但我不能找到将避免错误的方式这样做的任何方法,我认为它将所有画布属性随它。

有没有人有什么想法?

Answer 1:

如果图像是从你不控制域来了,那么你坚持CORS限制。

如果你有机会来配置自己的服务器,你可以通过设置这个标题让跨域共享(阅读更多关于服务器安全执行此操作时):

Access-Control-Allow-Origin: <origin> | *

另外,如果你的主机您在CORS启用网站相似图片www.dropbox.com你可以不喜欢这个安全错误获取图像:

var image1=new Image();
image1.onload=function(){
    context.drawImage(image1,0,0);
}
image1.crossOrigin="anonymous";
image1.src="https://dl.dropboxusercontent.com/u/99999999/yourCORSenabledPic.jpg";


文章来源: Is it possible to avoid “The operation is insecure” when using Canvas?