Заголовок CORS не установлен для ответа на внутреннюю ошибку сервера ASP. NET Core 3.1 - PullRequest
0 голосов
/ 27 мая 2020

Вот моя конфигурация CORS:

services.AddCors(options =>
{
    options.AddPolicy(name: "AllowedOrigins",
        policyBuilder =>
        {
            var urls = Configuration.GetSection("Host:AllowedOrigins").Get<List<string>>();
            policyBuilder.WithOrigins(urls.ToArray())
                .AllowAnyMethod()
                .AllowAnyHeader()
                .SetIsOriginAllowed((host) => true)
                .AllowCredentials();
        });
});

И в методе Configure:

app.UseRouting();

app.UseCors("AllowedOrigins");
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

Для внутренней ошибки сервера в ответе нет заголовков access-control-*. Насколько мне известно , эта проблема должна быть исправлена, поскольку ASP. NET Core 2.2.

1 Ответ

0 голосов
/ 17 июня 2020

Вам необходимо явно вызвать app.UseExceptionHandler(...) в вашем запуске.

Если вы этого не сделаете, то необработанные исключения всплывают в стек вызовов вплоть до Kestrel. И Kestrel не вызывает делегатов, подключенных к HttpContext.Response.OnStarting(...). CorsMiddlewareмногие другое промежуточное ПО) используют OnStarting для добавления информации в ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...