Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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:由于安全错误,无法获取图像数据_Javascript_Image_Security_Canvas_Runtime Error - Fatal编程技术网

JavaScript:由于安全错误,无法获取图像数据

JavaScript:由于安全错误,无法获取图像数据,javascript,image,security,canvas,runtime-error,Javascript,Image,Security,Canvas,Runtime Error,我的问题与中的用户完全相同。我正在使用以下代码: function imgData(img) { var src_canvas = document.createElement('canvas'); src_canvas.width = this.width; src_canvas.height = this.height; var src_ctx = src_canvas.getContext('2d'); src_ctx.drawImage(img,

我的问题与中的用户完全相同。我正在使用以下代码:

function imgData(img) {
    var src_canvas = document.createElement('canvas');
    src_canvas.width = this.width;
    src_canvas.height = this.height;

    var src_ctx = src_canvas.getContext('2d');
    src_ctx.drawImage(img, 0, 0);
    var src_data = src_ctx.getImageData(0, 0, this.width, this.height).data;
}
它总是在Chrome上生成以下错误:

Uncaught SecurityError: An attempt was made to break through the security policy of the user agent. Resources.js:27
Unable to get image data from canvas because the canvas has been tainted by cross-origin data. Resources.js:27

我对JavaScript非常陌生,不知道这里有什么问题。互联网今天似乎也不知所措,所以我现在在这里。我提到的问题的答案是指他试图使用来自外部来源(文件系统之外)的图像的问题。问题是,我不是。我只是在我的文件系统上运行Chrome中的文件。该映像也在我的文件系统中,而不是我认为应该出现安全错误的任何地方。有什么想法吗?我是个白痴吗?

您是否直接从文件系统而不是在Web服务器后面访问HTML/JavaScript文件?如果是这样,请尝试后一种方法,如果您要求大多数浏览器在Web服务器之外(即使它们位于您自己的文件系统中)获取数据,那么它们将出现跨域安全问题。

您是否直接从文件系统而不是在Web服务器后面访问HTML/JavaScript文件?如果是这样,请尝试后一种方法。如果您要求大多数浏览器在Web服务器之外获取数据(即使它们位于您自己的文件系统中),则它们都会遇到跨域安全问题。

您的映像是否来自远程源?你能包括你如何调用这个函数吗?你能发布调用这个函数的代码吗?包括您正在使用的图像的URL。您的图像是否来自远程源?你能包括你如何调用这个函数吗?你能发布调用这个函数的代码吗?包括您正在使用的图像的URL。看起来是这样的——“我只是在我的文件系统上运行Chrome中的文件”。如果确实是这样,并且您不想/不能在web服务器后面运行它,您可以在Chrome中禁用跨域安全性,方法是在命令行上启动它,如下所示:Chrome browser--disable web security。通过这种方式,解决方案是有效的。谢谢另外,您能告诉我如何托管/访问本地Web服务器,这样我就可以毫无问题地进行此类测试吗?如果这有意义的话……根据您的平台/需求,有无数种方法可以设置本地Web服务器。但是,请查看XAMPP以获得快速跨操作系统解决方案:谢谢!我将仔细研究它的外观——“我只是在我的文件系统上运行Chrome中的文件”。如果确实是这样,并且您不想/不能在web服务器后面运行它,您可以通过在命令行上启动它来禁用Chrome中的跨域安全性,如下所示:Chrome browser--disable web security。通过这种方式,解决方案是有效的。谢谢另外,您能告诉我如何托管/访问本地Web服务器,这样我就可以毫无问题地进行此类测试吗?如果这有意义的话……根据您的平台/需求,有无数种方法可以设置本地Web服务器。但是,请查看XAMPP以获得快速跨操作系统解决方案:谢谢!我会调查的