1. ホーム
  2. ジャバスクリプト

[解決済み】Access-Control-Allow-Originでオリジン<origin>が許可されない。

2022-04-08 14:28:12

質問

XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin. 

クロスドメインajaxリクエストについて読み、根本的なセキュリティ問題を理解しました。私の場合、2つのサーバーがローカルで動作しており、テスト中にクロスドメインリクエストを有効にしたいのです。

localhost:8080 - Google Appengine dev server
localhost:3000 - Node.js server

へのajaxリクエストを発行しています。 localhost:8080 - GAE server 私のページがノードサーバからロードされている間。最も簡単で、最も安全な方法は何でしょうか(クロームを disable-web-security オプションが必要です)。もし私が 'Content-Type' ノードサーバで行うべきでしょうか?どのように?

どのように解決するのですか?

異なるポートで動作しているため、異なるJavaScriptの origin . 同じマシン/ホスト名であることは問題ではありません。

サーバー(localhost:8080)上でCORSを有効にする必要があります。 このサイトを確認してください。 http://enable-cors.org/

あとは、サーバーにHTTPヘッダーを追加するだけです。

Access-Control-Allow-Origin: http://localhost:3000

あるいは、簡略化するために

Access-Control-Allow-Origin: *

サーバーがクッキーを設定しようとしている場合、"*" は使わないでください。 withCredentials = true

<ブロッククオート

認証されたリクエストに応答するとき、サーバーはドメインを指定しなければならず、ワイルドカードを使用することはできません。

については withCredentials こちら