Firefox 3のJavaScriptでgetImageDataを使用するアプリケーションを開発しようとしていますがNS_ERROR_DOM_SECURITY_ERR
、getImageData呼び出しで「」が表示されます。javascriptとイメージは両方とも現在ハードドライブから提供されていますが、これは明らかにセキュリティ違反ですか?これがライブの場合、両方が同じドメインから提供されるため、問題はありませんが、その間にどのように開発できますか?
4 に答える
ブラウザにバグオフするように指示できます。解決策は、状況に応じて良くも悪くもなります。問題がなければセキュリティダイアログが表示されないように、試してみました。
var data;
try {
try {
data = context.getImageData(sx, sy, sw, sh).data;
} catch (e) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
data = context.getImageData(sx, sy, sw, sh).data;
}
} catch (e) {
throw new Error("unable to access image data: " + e);
}
Apache(UNIXの場合)やIIS(Windowsの場合)などのローカルWebサーバーをインストールしてみてください。ブラウザはファイルシステムからのファイルをWebサーバーから提供されるコンテンツとはまったく異なる方法で処理することがわかっているので、これにより最終的にWeb関連のものに最適なローカルテストベンチが得られます。
Firefoxでは、アドレスバーに「about:config」と入力します。次に、検索フィールドを使用して「security.fileuri.strict_origin_policy」を検索します。これをダブルクリックして「false」に設定します。
FireFox 11.0 で使用しているときに同じ問題が発生しgetImageData
ました... ファイルとコードはすべてサーバー上にあり、ローカル コンピューターには何もありませんでした。
これは、私と同じ問題を抱えている人の助けになるかもしれないと思いました。
Firefoxが扱うようです
http://mySite.com
~とは別のドメインとして
http://www.mySite.com
そのため、ユーザーが入力しない場合は.htaccess
追加していましたwww.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mySite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mySite.com/$1 [L,R=301]
現在は正常に動作し、表示されNS_ERROR_DOM_SECURITY_ERR
なくなりました。