The Angular documentation on the new HttpClient https://angular.io/guide/http has a section \"Getting error details\" where they show an example like below. I have modified
I had to look at the Angular source code to understand the possible error conditions. The error object will always be a HttpErrorResponse, but its error property may differ depending on the situation. Here's what can happen when using the default XHRBackend with the default responseType of 'json':
Response received with HTTP status code indicating error (not 200-299):
HttpErrorResponse.error will be the body parsed as JSON or if parsing fails, the body as text.
Response received with good HTTP status code (200-299), but body could not be parsed as JSON:
HttpErrorResponse.error will be an object typed as HttpJsonParseError with two properties:
error: the parse error (of type Error)text: the body textNo response received due to an XHR network error:
HttpErrorResponse.error will be an XHR ProgressEvent with the type set to 'error'. (It may be wrongly typed as an ErrorEvent in older versions of TypeScript.)
Note: Angular does not set a timeout when making requests, nor does it register a timeout event handler. The default XHR timeout is 0, so requests will never time out client-side.
This might help you
private handleError(err: HttpErrorResponse) {
let errorMessage = '';
if (err.error instanceof Error) {
// A client-side or network error occurred.
errorMessage = `An error occurred: ${err.error.message}`;
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;
}
console.error(errorMessage);
return Observable.throw(errorMessage);
}