从 http 服务获取状态文本 - Angular 8

Get the Status Text from a http Service - Angular 8

我有一个向服务器发送 POST 请求的服务:

addPerson(person:PersonDTO) :Observable<any> {
  return this.httpClient.post<any>(this.urlBase + 'Persons', person);
}

我在组件中订阅了服务:

this.valueService.addPerson(person).subscribe((data) => {
   this.responseCode = data.statusText;
   console.log(this.responseCode)
});

我想在控制台上打印响应代码。问题是当出现错误时,代码在到达 console.log 之前停止。并且如果没有报错的话控制台会显示undefined

欢迎来到这里!

默认情况下,响应仅限于您 API 的响应正文。 要获取状态等其他信息,您需要在请求中添加 observe 选项:

addPerson(person:PersonDTO) :Observable<any> {
  return this.httpClient.post<any>(this.urlBase + 'Persons', person, {observe: 'response'});
}

像您这样的基本订阅意味着您只处理 next 用例。 要处理错误,您需要另一个错误回调:

this.valueService.addPerson(person).subscribe(
  (data) => {
   this.responseCode = data.statusText;
   console.log(this.responseCode)
  },
  (error) => console.error(error)
);