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

[解決済み】http://localhost CORS originが機能しないのはなぜですか?

2022-04-01 22:09:42

質問

サーバー(nginx/node.js)に適切なヘッダを設定しても、このCORS問題で困っています。

Chromeのネットワークペイン -> レスポンスヘッダーで確認することができます。

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

というのがありますが、これはこれでいいのでしょう。

これが今、私がテストに使っているコードです。

var xhr = new XMLHttpRequest();
xhr.onload = function() {
   console.log('xhr loaded');
};
xhr.open('GET', 'http://stackoverflow.com/');
xhr.send();

私は

XMLHttpRequest を読み込むことができません。 http://stackoverflow.com/ . 起源 http://localhost はAccess-Control-Allow-Originで許可されません。

サーバーの設定ではなく、クライアントのスクリプトに問題があるのでは...と思っています。

解決方法は?

クローム CORS リクエストでローカルホストをサポートしない (2010年に公開されたバグで、2014年にWontFixとされた)。

これを回避するには、以下のようなドメインを使用します。 localho.st (ローカルホストと同じように 127.0.0.1 を指す) または chrome を --disable-web-security のフラグを立ててください(テスト用と仮定して)。