Javascript 未捕获安全性错误:未能执行';getImageData';在';CanvasRenderingContext2D';:画布已被跨源数据污染
我在Chrome和Opera浏览器中遇到此错误:Javascript 未捕获安全性错误:未能执行';getImageData';在';CanvasRenderingContext2D';:画布已被跨源数据污染,javascript,html,canvas,Javascript,Html,Canvas,我在Chrome和Opera浏览器中遇到此错误: Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. 该代码在Internet Explorer、Mozilla Firefox和Safari中运行良好。但我需要在Chrome和Opera中修复它。请帮我找到解决这个问题的方法
Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
该代码在Internet Explorer、Mozilla Firefox和Safari中运行良好。但我需要在Chrome和Opera中修复它。请帮我找到解决这个问题的方法
我在这一行遇到了这个错误
imgData = ctx.getImageData(x1,y1,w,h);
也许这会有帮助,正如你提到的,交叉起源,所以试试这个
var UimageObj = new Image();
必须设置crossOrigin以允许保存画布数据。源图像应具有访问控制允许原点
设置为*
或所选域
UimageObj.crossOrigin = 'anonymous'; // crossOrigin attribute has to be set before setting src.If reversed, it wont work.
UimageObj.src = obj_data.srcUser;
希望有帮助。从磁盘加载html文件时使用:
file://path/to/your/file.html
,则Google Chrome和Opera将在第行出现错误,包括:imgData=ctx.getImageData(x1,y1,w,h)代码>
解决方案很简单:启动web服务器(apache、nginx)将html文件放在web服务器的某个位置,然后从以下位置加载html文件:http://localhost/somewhere/file.html
可能重复“在设置src之前必须设置交叉原点属性。如果反转,则无法工作。”这很重要,谢谢!