Javascript 画布图像(安全性错误)

Javascript 画布图像(安全性错误),javascript,canvas,html2canvas,Javascript,Canvas,Html2canvas,这是barfly, 我对canvaced图像有问题。(安全性错误) 我构建了一个用于设计VisitCard的工具。在这里,我使用几个画布作为文本,一个画布作为徽标。无需为徽标插入图像,一切正常。但是当我插入一个图像时,我得到了securityError。(一开始它也起作用了,我就是搞不清楚是哪些变化导致了这个问题)。现在,在通过ajax将它们发送到php文件之前,我尝试制作一个html2canvas。但还是一样的问题。它在没有徽标的情况下工作,并在插入徽标时抛出安全错误。这让我很困惑。 我在服务

这是barfly, 我对canvaced图像有问题。(安全性错误) 我构建了一个用于设计VisitCard的工具。在这里,我使用几个画布作为文本,一个画布作为徽标。无需为徽标插入图像,一切正常。但是当我插入一个图像时,我得到了securityError。(一开始它也起作用了,我就是搞不清楚是哪些变化导致了这个问题)。现在,在通过ajax将它们发送到php文件之前,我尝试制作一个html2canvas。但还是一样的问题。它在没有徽标的情况下工作,并在插入徽标时抛出安全错误。这让我很困惑。 我在服务器上设置了整个程序。网址是: 要添加图像,请单击任意文本,然后单击编辑器上的图像图标。 继续后,html2canvas将显示在原始应用程序下。(这里还有图片)。上载的图像文件可在以下位置调用:(仅限于所有不包含图像的位置)。
有人给我一个提示吗?提前感谢。

这是因为您正在对body元素调用
html2canvas()

您的文档确实包含对
https://code.jquery.com/ui/1.12.0/themes/base/images/ui-icons_444444_256x240.png
未加载正确的CORS标题

简单的解决方法是在
#innerbox
元素上调用html2canvas。 在文档的这一部分中,没有任何东西会污染画布,您可以根据自己的意愿调用任何导出方法


还要注意的是,canvas元素没有
crossOrigin
属性,绘制到其上下文中的媒体资源必须已通过适当的跨源请求提供,您不能在canvas级别执行此操作。

首先,您可以飞到page…hi@barfly,很高兴见到您!:)。。。请包含安全错误声明。错误声明为:[link]SecurityError:操作不安全。错误源行:var canvasData=canvas.toDataURL(“image/png”);但是在Kaido的帮助下,我解决了这个问题,现在一切都很好。无论如何,非常感谢你的关注。非常感谢你的帮助。现在一切都很好。嗨,Kaido-首先我认为一切都好,但事实并非如此。就像以前一样,有时成功了,但又失败了。我无法理解有图像和没有图像的画布(由html2canvas制作)之间的区别,这两幅画布之间的区别在哪里。我在标题中包含了交叉原点,如下所示:。到目前为止这是正确的吗?在哪里以及如何包括CORS标题?提前感谢您的帮助。cors标头由承载您将在画布上绘制的媒体的服务器发送。如果服务器未配置为接受跨源请求,那么您就倒霉了。在设置其src之前,您必须在img标记上设置crossIrigin属性,以便服务器知道您想要遵守cors。好的,我现在发现,当我插入图片并调整其大小时,图标不再可见,它可以工作。只有在插入小图像时才会失败。看来,你的暗示对了,关于那个图标。现在,在制作html2canvas之前,我尝试使图标不可见。(就像我对按钮所做的那样(var but=document.getElementById('button');但是.style.display='none';)。但是不管我怎么做,我都得到了它。document.getElementByClassName、标记名和..和..和..和..没有任何效果。你能给我最后的提示吗?对不起,打扰了;-)好的,我现在知道了。就像你在第一篇文章中所说的,这个图标确实应该为这个错误负责。我更改了jqery.css并使该图标仅在:hover state上可见。是否有机会对您的帮助给予良好的评价?就我对“如何”页面的理解而言,我不能做任何评分,因为我自己没有足够的分数。这对我来说似乎有点神秘。如果我误解了如何页面,请让我知道。我真的非常感谢你的时间和帮助,尽管你的评分很好。铜棒蝇