フロントと API を分けた瞬間に出やすいのが CORS エラー。ブラウザのコンソールには出るが、サーバログには何も残らないことが多く、初見だと迷いやすい。
この記事では、原因の型とASP.NET Core での設定をざっくり逆引きする。
Access-Control-Allow-Origin がない* が使えず失敗builder.Services.AddCors(options =>
{
options.AddPolicy("Frontend", policy =>
policy.WithOrigins("http://localhost:3000")
.AllowAnyHeader()
.AllowAnyMethod());
});
var app = builder.Build();
app.UseCors("Frontend");
app.MapControllers();
UseCors の位置はルーティングや認証との順番に注意。ポリシーを作っただけでは有効化されない。
policy.WithOrigins("http://localhost:3000")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
AllowCredentials と AllowAnyOrigin()(*)は併用できない。Origin は明示する。