2012-03-07 17 views
1

私は画像を操作するオンラインアプリで作業しています。 (サーバー上の)ローカルファイルで実行するとうまく動作しますが、もう一度別のソースを使って試してみるとすぐに破損します。 この理由はwhatwgからqoute、セキュリティ制限と思われる: 他のウェブサイトから「getImageData」を取得するにはどうすればよいですか? SECURITY_ERR:DOM Exception 18

getImageData()原点クリーンフラグをfalseに設定されているキャンバス要素の2Dコンテキストの方法は、そうでなければ、正しいと呼ばれるたびSECURITY_ERR例外を発生させる必要があります。

私はこれを何とかして回避することができますか? 画像はすべてGoogle APIから来ます。できれば画像を保存しないようにしたいと思っています。

ありがとうございました。

+1

可能重複(http://stackoverflow.com/questions/4672643/html5-canvas-getimagedata-and-same -origin-policy) – j08691

+1

実際に重複していない、彼はサブドメインを試しています。私は別のドメインを求めていますが、他の多くの質問を閲覧しましたが、 – justanotherhobbyist

答えて

2

ソースイメージが取得されているサーバーにはアクセスしていない可能性が高いので、サーバー経由でファイルをプロキシすることをお勧めします。

基本的には、データを取得するイメージのURLを使用してAJAXリクエストをサーバーに送信します。あなたのサーバーは要求を受け取り、あなたの代わりに画像を要求します。ファイルを取得すると、base64がエンコードされ、データが返されます。イメージデータは単なる文字列なので、イメージオブジェクトを作成し、元のドメインを心配することなくcanvasを使って操作することができます。

あなたはjQueryのを使用するために喜んでいる場合は、まさにこのここにあるんだろう偉大なプラグインがあります:http://www.maxnov.com/getimagedata/

は私が優れた結果を前に、この特定のプラグインを使用しました。自分のサーバーでプロキシサーバーコードをホストする必要があります(必要があります)。作者のappspotアカウントを使用することはできますが、1日にいくつかのクエリ数に制限され、頻繁に使い果たされます。著者はここにプロキシコードを自分でホストする方法について説明します[HTML5キャンバスgetImageDataと同一生成元ポリシー]のhttp://www.maxnov.com/getimagedata/#using-your-own-server

+0

ありがとう、私はそれに早期に遭遇しましたが、まだ試してみる時間がなかったので、それを調べます。 – justanotherhobbyist

関連する問題