0

この質問のユーザーとまったく同じ問題があります。私はこのコードを使用しています:

function imgData(img) {
    var src_canvas = document.createElement('canvas');
    src_canvas.width = this.width;
    src_canvas.height = this.height;

    var src_ctx = src_canvas.getContext('2d');
    src_ctx.drawImage(img, 0, 0);
    var src_data = src_ctx.getImageData(0, 0, this.width, this.height).data;
}

Chrome では常に次のエラーが生成されます。

Uncaught SecurityError: An attempt was made to break through the security policy of the user agent. Resources.js:27
Unable to get image data from canvas because the canvas has been tainted by cross-origin data. Resources.js:27

私はJavaScriptに非常に慣れていないため、ここで何が問題なのかわかりません。今日もネットがつながらないようなので、ここにいます。私が参照した質問への回答は、彼が外部ソース (ファイル システムの外部) から画像を使用しようとしていたという問題に言及しています。問題は、そうではないということです。ファイルシステムのChromeでファイルを実行しているだけです。画像は私のファイル システムにもあり、セキュリティ エラーに値すると思われる場所にはありません。何かご意見は?私はばかですか?

4

1 に答える 1

5

ウェブサーバーの背後ではなく、ファイルシステムから直接 HTML / JavaScript にファイルとしてアクセスしていますか? もしそうなら、後者を試してみてください。ほとんどのブラウザーは、Web サーバーの外部にあるデータを取得するように要求すると (たとえそれが独自のファイルシステムにあるとしても)、クロスドメイン セキュリティの問題を抱えています。

于 2013-10-26T01:56:50.863 に答える