1

ユーザーが画像をアップロードして描画し、結果を保存できるアプリを作成しています。これは、canvas要素を使用し、アップロードされた画像を背景として使用することで実現しようとしています。ImageServiceを介して画像を取得しています。キャンバスを初期化するためのクライアント側のコードは次のようになります。

var image = new Image();
image.src = "http://some.google.domain.com/foobar123";
var ctx = canvas.getContext('2d')
image.onload = function() {
    ctx.drawImage(image, 0, 0);
};

これで、ユーザーは画像に絵を描くことができます。

次に、ユーザーが画像を保存したい場合は、次のように呼び出します。

canvas.toDataURL("image/png")

これにより、Chromeで次のエラーが発生します。

Error: SecurityError: DOM Exception 18.
"Error: An attempt was made to break through the security policy of the user agent."

画像は私のアプリエンジンアプリのドメインとは異なるGoogleドメインから提供されているため、Chromeはそれを気に入らないと思います。

これに対する回避策はありますか?

前もって感謝します。

4

1 に答える 1

0

回避策として、ImageService の代わりに BlobstoreService を使用して画像データを提供しています。このアプローチは、私のアプリと同じドメインから画像を提供しますが、Google の静的画像提供インフラストラクチャを使用する利点をすべて失います。

于 2013-01-25T21:41:50.397 に答える