2014-11-01 10 views
5

sto ottenendo questo errore in Chrome e Opera Browser:Uncaught SecurityError: Impossibile eseguire 'getImageData' on 'CanvasRenderingContext2D': La tela è stato contaminato da dati cross-origine

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

Il codice funziona bene in Internet Explorer, Mozilla Firefox e Safari. Ma ho bisogno di aggiustarlo in Chrome e Opera. Ti prego, aiutami a trovare una soluzione per risolvere questo problema?

sto ottenendo questo errore in questa linea

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

Possibile duplicato dell'errore [getImageData() Il quadro è stato macchiato da dati di origine incrociata] (http://stackoverflow.com/questions/22097747/getimagedata-error- the-canvas-has-been-tainted-by-cross-origin-data) –

risposta

11

Può essere questo vi aiuterà, come lei ha detto origine trasversale in modo da provare questo,

var UimageObj = new Image(); 

crossOrigin deve essere impostato per consentire la i dati della tela da salvare. L'immagine sorgente deve avere access-control-allow-origin impostato su * o un dominio selezionato

UimageObj.crossOrigin = 'anonymous'; // crossOrigin attribute has to be set before setting src.If reversed, it wont work. 
UimageObj.src = obj_data.srcUser; 

Spero che aiuti.

+1

"l'attributo crossOrigin deve essere impostato prima di impostare src.Se invertito, non funzionerà." Questo è importante, grazie! – Voles

1

Quando si carica il file HTML dal disco utilizzando: file://path/to/your/file.html, Google Chrome e Opera si sollevano errore in linea tra cui: imgData = ctx.getImageData(x1,y1,w,h);

soluzione è semplice: avviare il server web (Apache, nginx) mettere il file html da qualche parte sul server web e carica il file html da: http://localhost/somewhere/file.html

Problemi correlati