Включение CORS с помощью .NET Core и Angular 6 - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь включить CORS в моем ASP.NET Core API и разрешить передачу файлов cookie из моего клиентского приложения (Angular 6).Однако всякий раз, когда я пытаюсь попасть в конечную точку через приложение Angular, я получаю следующую ошибку:

Ответ на запрос предполетной проверки не проходит проверку контроля доступа: значение 'Access-ControlЗаголовок -Allow-Origin 'в ответе не должен быть подстановочным знаком' * ', если режим учетных данных запроса' include '

В моем файле Startup.cs у меня включен CORS в ConfigureServices, например:

        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials()
                .WithOrigins("http://localhost:4200"));
        });

и в разделе Configure:

app.UseCors("CorsPolicy");

В моем приложении Angular 6 я вызываю конечную точку с токеном, подобным этому:

this.http.get<T>(url, { headers: new HttpHeaders({ 'X-XSRF-TOKEN': token}), withCredentials: true });

Ошибкасбивает с толку, потому что я явно устанавливаю разрешенные источники в .WithOrigins () в моей функции .AddCors, но все же он говорит, что есть только подстановочный знак.

Ответы [ 2 ]

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

Если он размещен на Azure.Проверьте настройки CORS в Azure AppService.Конфигурации там будут переопределять любую другую конфигурацию Cors, даже в промежуточном программном обеспечении ядра .net.

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

в

public void ConfigureServices(IServiceCollection services)

после

services.AddMvc()

try

            services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

, затем в

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)

try

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseCors("CorsPolicy");

После того, как вы сделаете вышеописанное с вашим основным API-интерфейсом asp.net, вы можете проверить, как показано ниже enter image description here

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

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