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

时间:2013-10-26 01:51:26

标签: javascript image security canvas runtime-error

我和this question中的用户有同样的问题。我正在使用此代码:

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中的文件。该图像也在我的文件系统中,而不是我认为值得出现安全错误的任何地方。有什么想法吗?我是个白痴吗?

1 个答案:

答案 0 :(得分:5)

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