Публикация в API с помощью Angular's HttpClient - PullRequest
0 голосов
/ 21 февраля 2019

В приложении Angular 7 я вызываю службу:

  this.messageService.send(model).pipe(

    catchError(err => {
      console.log('Error:', err);
      return err;
    }),

    map((response: Response) => {
      console.log(response);
    })

  );

Метод службы вызывает API:

public send(model: Model): Observable<Response> {

  const headers: HttpHeaders = new  HttpHeaders();
  headers.set('Content-Type', 'application/x-www-form-urlencoded');

  console.log(model);

  return this.httpClient.post<Response>>(`send`, model, { headers: headers });

}

Я могу видеть model наКонсоль, когда я делаю console.log(model);

Но точка останова, установленная на API, не срабатывает, и я не получаю никакой ошибки в catchError.

Действие API - ASP.NETCore 2.2.следующим образом:

[HttpPost("send")]
public async Task<IActionResult> Send([FromBody]Model model) {

  return Ok();

}

ПРИМЕЧАНИЕ :
В этом же приложении я могу без проблем использовать метод httpClient с get.

Не уверен, что мне не хватает.Есть идеи?

ОБНОВЛЕНИЕ

Я изменил код обслуживания Angular на:

public send(model: Model): Observable<Response>> {

  const headers: HttpHeaders = new  HttpHeaders();
  headers.set('Content-Type', 'application/json');

  console.log(model);

  return this.httpClient.post<Response>>(`send`, JSON.stringify(model), { headers: headers });

}

Все еще не работает.

Это угловая проблема, так как я только что опубликовал данные JSon в Postman.

Он работал с использованием Postman и без какой-либо аутентификации / авторизации.

1 Ответ

0 голосов
/ 21 февраля 2019

попробуйте увидеть окно вывода на visual studio.может быть, есть некоторая информация о проблеме.убедитесь, что контроллер имеет атрибут AthorizationAttribute.проверьте Content-Type ',' application / x-www-form-urlencoded ', попробуйте изменить его на' Content-Type ':' application / json '

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