«Ответ об ошибке HTTP для (неизвестный URL): 0 Неизвестная ошибка» вместо фактического сообщения об ошибке в Angular

Я совершенно не знаком с веб-API Angular 6 и .NET. Я пытаюсь вызвать post api из своего приложения angular, используя HttpClient. но я получаю ошибку CORS:

ОПЦИИ http://localhost:64458/api/employee/insert 404 (не найдено)

Доступ к XMLHttpRequest в 'http://localhost:64458/api/employee/insert' из origin 'http://localhost:4200' заблокирован политикой CORS: ответ на запрос предварительной проверки не передает доступ контрольная проверка: не имеет статуса HTTP ok.

core.js: 15724 ERROR HttpErrorResponse {заголовки: HttpHeaders, status: 0, statusText: "Неизвестная ошибка", url: "http://localhost:64458/api/employee/insert", ok: false,…}

Вот мой код angular service.ts:

url = 'http://localhost:64458/api/employee';
constructor(private http:HttpClient) {}
httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json'}) };  

insert(obj: any): Observable<any>{
    return this.http.post<any>(this.url + '/insert', obj,this.httpOptions).pipe(map(res => res));
}

Вот мой код веб-API:

[RoutePrefix("api/employee")]
public class HomeController : ApiController
{
    [HttpPost]
    [Route("insert")]
    public IHttpActionResult PostEmployee(dynamic data)
    {
        try
        {
            return Ok();
        }
        catch (Exception)
        {
            throw;
        }
    }
}

В чем может быть проблема?


person Reshma Shaikh    schedule 02.12.2019    source источник


Ответы (2)


Сначала в окне консоли диспетчера пакетов введите следующую команду

Install-Package Microsoft.AspNet.WebApi.Cors

Затем вы можете включить его глобально, как показано ниже

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        var cors = new EnableCorsAttribute("*", "*", "*");
        // or new EnableCorsAttribute("www.example.com", "*", "*");
        config.EnableCors(cors);
        // ...
    }
}

Более подробную информацию можно найти в их ДОК

person coder    schedule 02.12.2019

// добавляем в ConfigureServices метод startup.cs

 services.AddCors();

// в методе Configure startup.cs

 app.UseCors(x => x
               .AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader());
person Ashutosh Kushawaha    schedule 02.12.2019
comment
Я работаю над .net web api, этот ответ предназначен для ядра .net - person Reshma Shaikh; 02.12.2019
comment
Я уже добавил config.EnableCors(); в WebApiConfig.cs файл. - person Reshma Shaikh; 02.12.2019