ローカルで簡単なコードを開発していて、Chromeを使用している場合は、問題があります。「file:// xxxx」の形式のURLを使用してページをロードすると、キャンバスでgetImageData()を使用しようとすると失敗し、同じ画像からフェッチされている場合でも、クロスオリジンセキュリティエラーがスローされます。キャンバスをレンダリングするHTMLページとしてのローカルマシン上のディレクトリ。したがって、HTMLページがからフェッチされた場合、次のように言います。
file:// D:/wwwroot/mydir/mytestpage.html
そして、Javascriptファイルと画像は次のようにフェッチされています。
file:// D:/wwwroot/mydir/mycode.js
file:// D:/wwwroot/mydir/myImage.png
次に、これらのセカンダリエンティティが同じオリジンからフェッチされているにもかかわらず、セキュリティエラーがスローされます。
何らかの理由で、Chromeは原点を適切に設定する代わりに、必要なエンティティの原点属性を「null」に設定し、ブラウザでHTMLページを開いてローカルでデバッグするだけでは、getImageData()を含むコードをテストできなくなります。
また、同じ理由で、画像のcrossOriginプロパティを「anonymous」に設定しても機能しません。
私はまだこれの回避策を見つけようとしていますが、もう一度、ローカルデバッグはブラウザの実装者によって可能な限り苦痛にされているようです。
Firefoxでコードを実行しようとしましたが、Firefoxは、私の画像がHTMLおよびJSスクリプトと同じ起源であることを認識して、正しく実行しました。ですから、Chromeで問題を回避する方法についてのヒントを歓迎します。現時点では、Firefoxは機能していますが、デバッガーは非常に遅く、サービス拒否攻撃から一歩離れています。