当前位置: 首页 > 面试题库 >

无法导出污染的画布

孙经艺
2023-03-14
问题内容

我想将画布保存为img。我有这个功能:

function save() {
    document.getElementById("canvasimg").style.border = "2px solid";
    var dataURL = canvas.toDataURL();
    document.getElementById("canvasimg").src = dataURL;
    document.getElementById("canvasimg").style.display = "inline";
}

它给我错误:

未捕获到的SecurityError:无法在“ HTMLCanvasElement”上执行“ toDataURL”:可能无法导出污染的画布。

我该怎么办?


问题答案:

出于安全原因,您的本地驱动器被声明为“其他域”,并将污染画布。

(这是因为您最敏感的信息可能在本地驱动器上!)。

在测试时,请尝试以下解决方法

  • 将所有与页面相关的文件(.html,.jpg,.js,.css等)放在桌面上(而不是子文件夹中)。

  • 将您的图像发布到支持跨域共享的站点(例如dropbox.com)。确保将图像放在Dropbox的公用文件夹中,并在下载图像时设置交叉原点标记(var img = new Image(); img.crossOrigin =“ anonymous” …)

  • 在开发计算机上安装Web服务器(IIS和PHP Web服务器都有免费版本,可以在本地计算机上很好地工作)。



 类似资料:
  • 遵循CORS上的线程缓存效果:请求的资源上不存在“Access Control Allow Origin”头 我已经能够用我的html画布解决一个奇怪的CORS问题。正如上面的线程中所述,当通过下面的函数添加图像时,我收到了标准的浏览器CORS违规警告,但根据是否清除浏览器缓存,我无法真正重现原因。当删除属性时,我完全能够通过此函数从S3向画布添加图像: 现在我的应用程序想通过导出画布 但是,由于

  • 我受到了某种测试污染。当我单独运行失败测试时,它们会通过。当我把它们一起运行时,我会得到错误。这些错误与数据库无关。我不能理解错误。例如:页面: 我不明白,因为模块的内容不是必需的。另外,另一个测试的污染会导致这种情况吗?我的测试太多了,无法列出。 我唯一的想法是cookie被设置而不是由我的程序。有一堆cookie,它们具有奇怪的名称,如“ba743b”、“kvcd”、“kn_ai”等,并具有神

  • 描述 HTTP 参数污染,或者 HPP,在网站接受用户输入,将其用于生成发往其它系统的 HTTP 请求,并且不校验用户输出的时候发生。它以两种方式产生,通过服务器(后端)或者通过客户端。 在 StackExchange 上,SilverlightFox 提供了一个 HPP 服务端攻击的不错的例子。假设我们拥有以下站点:https://www.example.com/transferMoney.ph

  • 问题内容: 我知道在Java 7中使用带有泛型类型的varargs时会发生这种情况。 但是我的问题是.. Eclipse说“使用它可能会污染堆”时,这到底是什么意思? 和 新注释如何防止这种情况? 问题答案: 堆污染是一个技术术语。它引用的引用类型不是其指向的对象的超类型。 这可能会导致“无法解释” 。 @SafeVarargs完全不能阻止这一点。但是,有些方法证明不会污染堆,编译器无法证明这一点

  • 烟花由中国古代人民较早发明,常用于盛大的典礼或表演中,也在除夕夜及元宵节中燃放用来烘托节日氛围。近年来随着环境污染的加剧,一些地区已经禁止燃放烟花了,那我们就用 Python 实现一场无污染的烟花秀。

  • 本文向大家介绍如何修复HTML中的getImageData()错误“画布已被跨源数据污染”?,包括了如何修复HTML中的getImageData()错误“画布已被跨源数据污染”?的使用技巧和注意事项,需要的朋友参考一下 crossOrigin 属性允许在像他们被从当前原点加载的一个画布中使用的是自外部来源加载的图像。 使用未经CORS批准的图像会污染画布。画布污染后,您将无法再将数据拉出画布。通过