112

現在、奇妙な 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 ボトル サーバーです。
  • localhost:8080/ : Javascript アプリケーションを実行する Python simpleHTTPserver。このアプリは、上記のサーバーで Ajax リクエストを実行しています。

何が問題なのか考えてみませんか?

編集:

そして...ポートが問題でした。あなたの答えをありがとう:)

誰かが Python ボトル サーバーも使用している場合は、この投稿に記載されている回答に従って、CORS の問題を解決できます: ボトル Py: jQuery AJAX 要求に対して CORS を有効にする

4

2 に答える 2

150

プロトコルホスト 、および ポートが同じである場合にのみ、同じと見なされます:同一オリジン ポリシー

有効にしたい場合は、ヘッダーを追加して、Cross-Origin Resource Sharing (cors)に従う必要があります。Mozilla には例があります

応答のヘッダーとして Access-Control-Allow-Origin を追加する必要があります。全員を許可するには (おそらくそうすべきではありません):

Access-Control-Allow-Origin: *

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

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

于 2013-11-13T23:45:22.547 に答える
35

ポート番号が異なります。

スキーム、ホスト名、またはポートのいずれかが一致しない場合、リクエストはクロスドメインと見なされます。

于 2013-11-13T23:46:07.657 に答える