1. ホーム
  2. asp.net-web-api

[解決済み】「Access-Control-Allow-Origin」ヘッダが複数の値を含む場合

2022-02-14 18:47:35

質問

クライアント側でAngularJSの$httpを使用して、サーバー側のASP.NET Web APIアプリケーションのエンドポイントにアクセスしています。クライアントはサーバーと異なるドメインでホストされているので、私はCORSが必要です。それは$http.post(url、data)に対して動作します。しかし、ユーザーを認証し、$http.get(url)を介してリクエストを行うとすぐに、メッセージが表示されます。

Access-Control-Allow-Origin」ヘッダには複数の値「http://127.0.0.1:9000, http://127.0.0.1:9000」が含まれていますが、許可されるのは1つだけです。したがって、オリジン 'http://127.0.0.1:9000' はアクセスを許可されません。

Fiddlerは、optionsリクエストが成功した後、getリクエストに確かに2つのヘッダーエントリーがあることを示しました。私はどこで何を間違えているのでしょうか?

更新情報

jQueryの$http.getの代わりに$.getを使っても、同じエラーメッセージが表示されます。ということで、これはAngularJSの問題ではないようです。しかし、それはどこに間違っているのでしょうか?

解決方法は?

を追加しました。

config.EnableCors(new EnableCorsAttribute(Properties.Settings.Default.Cors, "", ""))

だけでなく

app.UseCors(CorsOptions.AllowAll);

をサーバに送信します。この結果、2つのヘッダーエントリーが発生します。後者を使用すればうまくいきます。