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

Cod*_*ler 0 javascript security runtime-error canvas image

我有完全相同的问题,因为在用户这一问题.我正在使用此代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

它总是在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
Run Code Online (Sandbox Code Playgroud)

我是JavaScript的新手,不知道这里有什么问题.今天互联网似乎也处于亏损状态,所以我现在在这里.我引用的问题的答案是指他试图使用来自外部源(他的文件系统之外)的图像的问题.问题是,我不是.我只是在我的文件系统上运行Chrome中的文件.该图像也在我的文件系统中,而不是我认为值得出现安全错误的任何地方.有什么想法吗?我是个白痴吗?

小智 5

您是否直接从文件系统访问HTML/JavaScript作为文件,而不是在Web服务器后面?如果是这样,尝试后者,如果您要求他们在网络服务器之外获取数据(即使他们在您自己的文件系统中),大多数浏览器都会遇到跨域安全问题.