Метод Angular Delete не передает предполетный запрос при вызове .net web api - PullRequest
0 голосов
/ 03 мая 2019

У меня есть метод удаления на UsersController:

public async Task<IHttpActionResult> DeleteUser(Guid id)
        {
            User user = await db.Users.FindAsync(id);
            if (user == null)
            {
                return NotFound();
            }

            db.Users.Remove(user);
            await db.SaveChangesAsync();

            return Ok();
        }

И я включил Cors, установив пакет, включив cors в WebApiConfig и добавив его в web.config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>

Я использую Angular во внешнем интерфейсе, и у меня есть сервис, где у меня есть вызов для методов удаления:

public delete = (route: string) => {
    return this.http.delete(this.createCompleteRoute(route, environment.urlAddress));
  }

Когда я выполняю вызов с использованием этой функции, URL-адрес: http://localhost:52474/api/Users/"some guid", но вызов не удается, сказав, что он не прошел предполетный запрос. Нужно ли добавить что-то еще в мою конфигурацию?

1 Ответ

0 голосов
/ 03 мая 2019

Я закомментировал настройки в web.config и добавил [EnableCors("*", "*", "*")] поверх контроллера, и теперь он работает.

...