0
我正在使用畫布顯示圖像並使用getImageData()獲取該圖像的特定部分的信息。根據我設置圖像參數的順序,它可以或不可以。CORS錯誤取決於圖像參數設置順序
在文檔主體上使用onload
調用該方法。下面是代碼:
function draw() {
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = "url_to_image";
img.crossOrigin = "anonymous";
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
var data = document.getElementById('canvas').getContext('2d').getImageData(310, 320, 1, 1).data
}
}
這觸發以下crossOrigin錯誤:
Cross-origin image load denied by Cross-Origin Resource Sharing policy.
從中我得到的影像的服務器被配置爲把我回來的圖像的Access-Control-Allow-Origin:*
響應頭。
img.crossOrigin = "anonymous";
img.src = "url_to_image";
這似乎很奇怪對我說:
但是,如果我剛纔設置的image.src
前img.crossOrigin
做的一切工作就好了。任何人都知道發生了什麼?