Se stai sviluppando un breve pezzo di codice localmente e stai utilizzando Chrome, c'è un problema. se la tua pagina viene caricata utilizzando un URL del modulo "file: // xxxx", il tentativo di utilizzare getImageData () sull'area di disegno non riuscirà e genererà l'errore di sicurezza cross-origin, anche se l'immagine viene recuperata dallo stesso directory sulla macchina locale come pagina HTML che esegue il rendering della tela. Quindi, se la tua pagina HTML viene recuperata da, dì:
file: // D: /wwwroot/mydir/mytestpage.html
e il file e le immagini Javascript vengono recuperati da, ad esempio:
file: // D: /wwwroot/mydir/mycode.js
file: // D: /wwwroot/mydir/myImage.png
quindi, nonostante il fatto che queste entità secondarie vengano recuperate dalla stessa origine, l'errore di sicurezza viene comunque generato.
Per qualche motivo, invece di impostare correttamente l'origine, Chrome imposta l'attributo di origine delle entità richieste su "null", rendendo impossibile testare il codice che coinvolge getImageData () semplicemente aprendo la pagina HTML nel browser ed eseguendo il debug in locale.
Inoltre, l'impostazione della proprietà crossOrigin dell'immagine su "anonymous" non funziona, per lo stesso motivo.
Sto ancora cercando di trovare una soluzione per questo, ma ancora una volta, sembra che il debug locale sia reso il più doloroso possibile dagli implementatori del browser.
Ho appena provato a eseguire il mio codice in Firefox, e Firefox lo fa bene, riconoscendo che la mia immagine ha la stessa origine degli script HTML e JS. Quindi gradirei qualche suggerimento su come aggirare il problema in Chrome, poiché al momento, mentre Firefox funziona, il suo debugger è dolorosamente lento, al punto da essere rimosso a un passo da un attacco di negazione del servizio.