2014-11-01 9 views
5

Chrome ve Opera tarayıcılar bu hatayı alıyorum:Yakalanmayan SecurityError: 'CanvasRenderingContext2D' açık 'getImageData' yürütülemedi: tuval çapraz kökenli verilerle lekelenmiş durumda

Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. 

kod iyi çalışıyor Internet Explorer, Mozilla Firefox ve Safari'de. Ancak Chrome ve Opera'da düzeltmem gerekiyor. Lütfen bu sorunu çözmek için bir çözüm bulmama yardım et?

Ben

var UimageObj = new Image(); 

crossOrigin etkinleştirmek için ayarlanmış olması gerekir, çapraz kökenli bu yüzden bu deneyin söylediğim gibi bu, yardımcı olacaktır olabilir bu hat

imgData = ctx.getImageData(x1,y1,w,h); 
+1

[getImageData() hatasının olası kopyası Tuval, çapraz kaynaklı verilerle lekelenmiştir] (http://stackoverflow.com/questions/22097747/getimagedata-error- -bağlanmış-çapraz-kaynaklı-kaynaklı-veri) –

cevap

11

bu hatayı alıyorum kaydedilecek olan tuval verisi. Kaynak görüntü* olarak ayarlanmış veya seçili bir etki alanına sahip olmalıdır

Umarım yardımcı olur.

+1

"crossOrigin özniteliği, src.If ayarlanmadan önce ayarlanmalıdır, işe yaramaz." Bu önemli, teşekkürler! – Voles

1

kullandığınız diskten html dosyasını yüklediğinizde: file://path/to/your/file.html ardından Google Chrome ve Opera dahil çizgisinde hata neden: imgData = ctx.getImageData(x1,y1,w,h);

Çözüm basit: başlatmak web sunucusu (apache, nginx) yere senin html dosyasını koymak web sunucusunda ve html dosyanızı şu adresten yükleyin: http://localhost/somewhere/file.html