У меня возникли проблемы с тем, чтобы мои CORS-запросы работали между asp net core API и Angular 8-приложением с использованием сгенерированного клиента машинописного текста Nswag.
Только сейчас я понял, почему , Мое происхождение "null"
. Не http://localhost:4200
, как я ожидал.
Поэтому, когда я добавил «ноль» в качестве разрешенного источника, все работает. Но я хочу понять, почему и какие последствия это имело бы, если бы я оставил значение «null» в качестве разрешенного источника в производственном процессе.
В настоящее время мой код выглядит следующим образом.
appsettings. json
"CORS-Settings": {
"Allow-Origins": [
"http://localhost",
"http://localhost:4200",
"https://localhost",
"https://localhost:4200",
"null" // <-- if I remove this my localhost browser gets denied by CORS
],
"Allow-Methods": [ "OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE" ]
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
// other stuff
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceScopeFactory scopeFactory, ILoggerFactory loggerFactory)
{
var allowedMethods = Configuration.GetSection("CORS-Settings:Allow-Methods").Get<string[]>();
var allowedOrigins = Configuration.GetSection("CORS-Settings:Allow-Origins").Get<string[]>();
app.UseCors(
options => options
.WithOrigins(allowedOrigins)
.WithMethods(allowedMethods)
);
// other stuff
}
Так почему же мне нужно добавить «ноль» в качестве разрешенного источника, и это вредно, если оно будет сделано в производство?
Если это что-то меняет, я использую firefox v72.0.1.