CORSに新しいWebAPIプロジェクトを使用させようとしています。このプロジェクトは、ActiveDirectoryBearerAuthentication
を使用するデフォルトのWebAPIテンプレート(つまり、MVCおよびWebAPI参照)です。WebAPIでCORSを有効にする
私は試してみて、私のAPIへのリクエストを行うたびに、私は次のエラーで会っています:
XMLHttpRequest cannot load https://localhost:44385/api/values. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:44369' is therefore not allowed access.
私はMicrosoft.Owin.Cors、およびMicrosoft.AspNet.WebApi.Corsがインストールされています。
マイWebApiConfigはこれです:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
....
私Startup.Authはこれです:ネット周り
public void ConfigureAuth(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
....
ソリューションは、追加すると言う:
<customHeaders>
<!-- Adding the following custom HttpHeader will help prevent CORS from stopping the Request-->
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
web.configファイルに。ただし、これを行うと、Microsoft.AspNet.WebApi.Cors
がインストールされているかどうかにかかわらず、すべてが許可されます。あなたは次の操作を行うことができる唯一の単一ドメインできるようにするには
すべてを許可していませんか、依然として制限されたアクセスを望み、他の要求をブロックしたい –
CORSが動作するためには、IEがP3Pヘッダーの応答を要求することです。 – pm100
1つのドメインを除くすべてをブロックしたいです。私はそれが働いていることを確認するために後方に働くと思った。もし私がこれをやっていなかったら、web.configの解決策が修正されたと思っていたでしょう - それはCORSの設定に関係なくすべてを許可しません。 – Mardoxx