我在以下代码中遇到了跨源污染的错误,我无法弄清楚原因。当您尝试从外部服务器提取图像时,我认为发生了跨源污染,但图像来自本地目录。
var image = new Image();
$(image).on("load", function() {
ctx.drawImage(image, 0, 0, 1080/scale, 1920/scale);
/*Error occurs here */
var imageData = ctx.getImageData(0, 0,
this.width / scale,
this.height / scale);
var pixels = imageData.data;
...
});
image.src = "test2.jpg";
答案 0 :(得分:1)
声明本地文件系统是跨源的并且会污染画布。鉴于您的最敏感信息可能位于本地文件系统上,这是一个很好的声明。
以下是符合CORS安全性的一些方法:
在本地计算机上安装Web服务器,并在该服务器上同时提供图像和.html / .css / .js文件。 PHP& IIS都有出色的本地版本。
将您的图片放在符合CORS标准的托管服务上(imagur.com是其中之一)
对于小型项目,有时可以将图像和网页文件全部放在桌面上。