Angular 6 .net Web Api Нет Ошибка заголовка «Access-Control-Allow-Origin» - PullRequest
0 голосов
/ 31 мая 2018

Я занимаюсь разработкой .net Core Web Api с Vs Code с Angular 6, Vs Studio.Ошибка заключается в следующем;- Не удалось загрузить ресурс: сервер ответил с состоянием 500 (Внутренняя ошибка сервера) - На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Источник 'http: // localhost: 4200', следовательно, не имеет доступа.Ответом был HTTP-код состояния 500.

// I added to Startup.cs;
ConfigureServices === >>> services.AddCors ();
Configure === >>>> app.UseCors (bldr => bldr.WithOrigins ("http: // 
localhost: 4200") .WithMethods ("GET", "POST"). AllowAnyHeader ());

Проблема в том, что;Проблема решается в методе get, данные извлекаются, но в методе post это не работает.Заранее спасибо.

Ответы [ 2 ]

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

Важно помнить, что services.AddCors() должен предшествовать services.AddMvc() и то же самое с app.UseCors() и app.UseMvc().

0 голосов
/ 31 мая 2018

Существует несколько способов решения этой проблемы, в документации core dotnet говорится о том, как обращаться с CORS.

Это, как правило, проблема только во время разработки, так что это мой предпочтительный методрешение этой проблемы.

Добавьте в службы правило CORS, которое разрешает все во время разработки

if (_env.IsDevelopment())
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowAll",
                  p => p.AllowAnyOrigin()
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials());
    });
}

Затем добавьте созданное правило в Компоновщик приложений:

if (_env.IsDevelopment())
{
    app.UseCors("AllowAll");
}

Альтернативно

Существует также расширение для браузера CORS , доступное для Google Chrome, я не уверен насчет других браузеров.

Это мое поведение, когда я не хочу вмешиватьсяс заголовками запрос / ответ и является быстрым решением, когда эта проблема возникает с другими проектами, а не только .net core

Слово предупреждения, хотя иногда этот плагин не работает.

...