Чтение пользовательского кода ошибки и сообщения о результате, возвращенного веб-службой в Angular 7 - PullRequest
0 голосов
/ 18 мая 2019

У меня есть веб-сервис, и когда я запрашиваю ошибочные данные, веб-сервис возвращается так с кодом состояния HTTP 400:

{
    "result": "Member Language Code Can Not Be Empty",
    "errorCode": "ERROR-10"
}

Когда я хочу прочитать эту ошибку в своем проекте Angular, яне могу сделать это с помощью этого кода:

this.memberService.addUserMembers(this.memberAddForm)
  .pipe(
    map(res => res),
    catchError((error: HttpErrorResponse) => {  
    if (error.status === 400)   
      console.log("400 Bad Request!"); 
    return throwError("Request Error!)");  
  }))
  .subscribe(
    data => {
      this.router.navigate(['member-list']);
    },
    (error:HttpErrorResponse) => {
      console.log(error.error);
      this.loading = false;
    }
  );

}

Когда я выполнял отладку с помощью Chrome, я увидел, что ошибка перехвата никогда не работает, и ошибка просто "ОК".У него нет другой собственности.Error.error всегда возвращает «undefined».

1 Ответ

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

Вы можете использовать

this.http.get('…', { observe: 'response' });

Хотя это является наиболее распространенным явлением, иногда вам приходится иметь дело с различными видами данных. Это поддерживается через свойство responseType.

this.http.get('...', { responseType: 'text' }); 
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'
...