同じドメインで CORS エラーが発生していますか? 質問する

同じドメインで CORS エラーが発生していますか? 質問する

現在、奇妙な CORS 問題が発生しています。

エラーメッセージは次のとおりです:

XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...] 
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin

2 つのサーバー:

  • localhost:8666/routeREST/ : これはシンプルな Python Bottle サーバーです。
  • localhost:8080/ : Javascript アプリケーションを実行する Python の simpleHTTPserver。このアプリは上記のサーバー上で Ajax リクエストを実行します。

何が問題なのか考えてみましょう。

編集:

そして...ポートが問題でした。ご回答ありがとうございます :)

Python ボトル サーバーも使用している場合は、この投稿の回答に従って CORS の問題を解決できます。Bottle Py: jQuery AJAX リクエストの CORS を有効にする

ベストアンサー1

それは、スキームドメイン そして ポート同一です。同一起源ポリシー

説明

  • httpそしてhttps同じスキームではありません。(デフォルトでは異なるポートも使用します)
  • 例.comそして参考文献同じドメインではありません。
  • ポート80そして443同じポートではありません。

CORSを有効にする方法

CORSを有効にするには、次の手順に従ってください。クロスオリジンリソース共有 (cors)ヘッダーを追加することで。Mozillaは

レスポンスのヘッダーに を追加する必要がありますAccess-Control-Allow-Origin。全員に許可するには(おそらくないそれを行う):

Access-Control-Allow-Origin: *

複数の起源

複数のオリジンをサポートする必要がある場合(たとえば、example.comと の両方www.example.com)、応答の をリクエストの -headerAccess-Control-Allow-Originの値に設定します(オリジンがホワイトリストに登録されていることを確認した後)。Origin

また、いくつかのリクエストはOPTIONメソッドでプリフライトリクエストを送信するので、独自のコードを書く場合はそれらのリクエストも処理する必要があることに注意してください。

おすすめ記事