5

私は HTML5 キャンバスとKineticJS の.toDataURL()メソッドによる関数を使用しています。キャンバスは、別のマシンとサブドメインに保存されている、ユーザーがサイトにアップロードした画像を使用します。 .toDataURL()farm1.domain.com

問題:.toDataURL()呼び出されると、エラーが発生します

SECURITY_ERR: DOM Exception 18 

これを回避する方法はありますか?ユーザーが 経由でページにアクセスしdomain.com、画像が でホストされている場合も、同じ問題が発生しwww.domain.comます。

試み:

次の行をhttpd.confvirtualhost 内に追加し、Apache サービスを再起動しました。

Header add Access-Control-Allow-Origin "http://www.domain.com"
Header add Access-Control-Allow-Origin "http://domain.com"
Header add Access-Control-Allow-Origin "http://farm1.domain.com"

www.domain.comでホストされている画像にページからアクセスすると、まだ同じエラーが発生しdomain.comます。KineticJS でこれを回避する方法はありますか?

4

2 に答える 2

1

Access-Control-Allow-Originヘッダーは、画像を読み込んでいるページではなく、読み込んでいる画像に追加する必要があります。このヘッダーの詳細、および一般的な CORS については、「CORS is not just for XHR」を参照してください。この問題について具体的に説明しています。

于 2013-01-15T07:35:22.800 に答える
0

このエラーを回避する方法はありません。別のドメインからキャンバスに読み込まれた画像は、現在すべてのブラウザーで実装されているため、このエラーを発生させます。あなたの場合、画像は同じドメインに保存する必要があり、例外は発生しません。

于 2013-01-15T06:54:53.177 に答える