Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获安全性错误:未能执行';getImageData';在';CanvasRenderingContext2D';:画布已被跨源数据污染_Javascript_Html_Canvas - Fatal编程技术网

Javascript 未捕获安全性错误:未能执行';getImageData';在';CanvasRenderingContext2D';:画布已被跨源数据污染

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中修复它。请帮我找到解决这个问题的方法

我在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之前必须设置交叉原点属性。如果反转,则无法工作。”这很重要,谢谢!