web-dev-qa-db-ja.com

FirefoxでCORSを有効にする方法は?

FirefoxでCORSを許可する方法を教えてください。 ChromeとIEで簡単に管理できましたが、Firefoxで完全に失敗しています。次のabout:configエントリを編集しました

security.fileuri.strict_Origin_policy = false

この試みはここで数回投稿されており、他のサイトでも伝えられていますが、効果はありません。私は、Same-Origin-policiesに関するMozillaガイドを読みました。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

ただし、CORSと関連トピックのみを説明しています。 FFで有効にする回避策はリストされていません。

最終的な解決策を本当に感謝します。

ps:FORCECORSはどういうわけか機能しません...

30
Ahab

ブラウザには何もしません。 CORSがサポートされています デフォルトでは、すべての最新ブラウザー(およびFirefox 3.5以降)。

JavaScriptがアクセスするサーバーは、JSが実行しているHTMLドキュメントをホストしているサイトに、CORS HTTP応答ヘッダーを介して許可を与える必要があります。


security.fileuri.strict_Origin_policyは、ローカルHTMLドキュメントのJSがハードディスク全体にアクセスできるようにするために使用されます。 falseに設定しないでください。ダウンロードしたHTMLドキュメント(電子メールの添付ファイルを含む)からの攻撃に対して脆弱になります。

19
Quentin

サーバーが次のヘッダーを送信する場合にのみ可能です:Access-Control-Allow-Origin: *

これがあなたのコードであれば、次のようにセットアップできます(PHP):

header('Access-Control-Allow-Origin: *');
9
Abbas

私は長い間この問題に悩まされていました(CORSはFFでは動作しませんが、Chromeおよびその他)で動作します。アドバイスはありません。最後に、ローカルdevサブドメイン( sub.example.devなど)が/ etc/hostsで明示的に言及されていなかったため、FFはそれを見つけることができず、紛らわしいエラーメッセージを表示します- '中止...'開発ツールパネル。

ローカル/ etc/hostsに正確なサブドメインを入れると、問題が修正されました。 / etc/hostsはUnixシステムでは単なるプレーンテキストファイルであるため、rootユーザーの下で開き、サブドメインを ' 127.0.0.1 'IPアドレス。

2
Vasiliy

このFirefoxアドオンはあなたに役立つかもしれません:

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

開発目的でCORSのオンとオフを切り替えることができます。

2
saudes

2つの簡単な手順を覚えておいてください。
about:config
security.fileuri.strict_Origin_policyfalse

DTPとAndroidの両方で動作しますが、時々trueに戻ります。

1
Tom

非常に多くの場合、送信サーバーをセットアップするオプションがないため、私がしたことは、javascriptのXMLHttpRequest.open呼び出しを、次のコードを含むローカルのget-file.phpファイルに変更したことです。

<?php
  $file = file($_GET['url']);
  echo implode('', $file);
?>

javascriptはこれをしています:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // File content is now in the this.responseText
  }
};
xhttp.open("GET", "get-file.php?url=http://site/file", true);
xhttp.send();

私の場合、これは制限/状況を完全に解決しました。 Firefoxやサーバーをハッキングする必要はありません。 javascript/htmlファイルとその小さなphpファイルをサーバーにロードするだけで完了です。

0
Tickseeker