Невозможно сделать перекрестный запрос между локальными службами ASP.NET Core MVC - PullRequest
0 голосов
/ 12 сентября 2018

У меня два приложения работают локально.один - веб-сервис на https://localhost:44365, другой - веб-приложение на https://localhost:44360.Веб-приложение должно иметь доступ к веб-службе.

Для веб-службы настроена политика cors, которая должна это разрешать:

// For running on local pc
services.AddCors(options =>
{
    options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
    });
    ...
    app.UseCors("CorsPolicy");
    app.useMvc();
    ...
}

Когда я запускаю оба приложения и нажимаю на веб-приложение в своем браузере, я получаю ошибки перекрестного источника:

Не удалось загрузить https://localhost:44365/api/users/current/avatarText: Нет заголовка 'Access-Control-Allow-Origin' в запрашиваемом ресурсе.Происхождение 'https://localhost:44360' поэтому не разрешено.Ответ был HTTP-код состояния 500.

Заголовки из службы (на 44365) были:

access-control-allow-credentials: true
access-control-allow-headers: content-type
access-control-allow-origin: https://localhost:44360

Как ни странно, я также показываю 500 ошибок сервера в методеобсуждаемый.Хотя, когда приложение (44360) вызывает его, я могу пройти по методу (в 44365), и в этом методе нет 500.Я могу назвать это успешно, когда вызов не является перекрестным источником.

1 Ответ

0 голосов
/ 12 сентября 2018

Вы должны использовать AllowAllOrigins

options.AddPolicy("AllowAllOrigins",
    builder =>
    {
        builder.AllowAnyOrigin();
    });

Источник: https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.1#set-the-allowed-origins

Тщательно продумайте, прежде чем разрешать запросы от любого источника.Разрешение запросов от любого источника означает, что любой веб-сайт может отправлять запросы к другому источнику в ваше приложение.

Этот параметр влияет на предварительные запросы и заголовок Access-Control-Allow-Origin (описанный ниже вэта тема).

...