Jika Anda mengembangkan sepotong kode cepat secara lokal, dan Anda menggunakan Chrome, ada masalah. jika laman Anda memuat menggunakan URL dengan format "file: // xxxx", mencoba menggunakan getImageData () di kanvas akan gagal, dan memunculkan kesalahan keamanan lintas sumber, bahkan jika gambar Anda diambil dari yang sama direktori di komputer lokal Anda sebagai halaman HTML yang merender kanvas. Jadi jika halaman HTML Anda diambil dari, katakan:
file: // D: /wwwroot/mydir/mytestpage.html
dan file Javascript serta gambar Anda sedang diambil, katakan:
file: // D: /wwwroot/mydir/mycode.js
file: // D: /wwwroot/mydir/myImage.png
kemudian terlepas dari kenyataan bahwa entitas sekunder ini diambil dari sumber yang sama, kesalahan keamanan masih terjadi.
Untuk beberapa alasan, alih-alih menyetel asal dengan benar, Chrome menyetel atribut asal dari entitas yang diperlukan ke "null", sehingga tidak mungkin untuk menguji kode yang melibatkan getImageData () hanya dengan membuka laman HTML di browser Anda dan melakukan debug secara lokal.
Selain itu, menyetel properti crossOrigin gambar ke "anonim" tidak berfungsi, karena alasan yang sama.
Saya masih mencoba mencari solusi untuk ini, tetapi sekali lagi, tampaknya debugging lokal dibuat sesulit mungkin oleh pelaksana browser.
Saya baru saja mencoba menjalankan kode saya di Firefox, dan Firefox melakukannya dengan benar, dengan mengenali bahwa gambar saya berasal dari sumber yang sama dengan skrip HTML dan JS. Jadi saya akan menerima beberapa petunjuk tentang cara mengatasi masalah di Chrome, karena saat ini, saat Firefox berfungsi, debuggernya sangat lambat, sampai satu langkah dihapus dari serangan penolakan layanan.