Отображать ошибки типа net::ERR_CONNECTION_REFUSED

Следуя документации angular 2 и, в частности, https://angular.io/docs/ts/latest/guide/server-communication.html с примером кода в plunkr здесь - я пытался смоделировать сценарий ошибки для неработающей ссылки на сервер (поэтому вызов).

GET http://localhost:3002/heroes net::ERR_CONNECTION_REFUSED
scheduleTask    @   zone.js:1990
ZoneDelegate.scheduleTask   @   zone.js:384
onScheduleTask  @   zone.js:274

Однако в шаблоне HTML {{errorMessage}} я собираюсь 0 - {"isTrusted":true}, Как мне собрать сообщение об ошибке net::ERR_CONNECTION_REFUSED?

Обратите внимание, что нужно добавить import 'rxjs/add/observable/throw'; на сервис, чтобы избежать ошибки - TypeError: Observable_1.Observable.throw is not a function который в противном случае встретился бы.

1 ответ

Попробуйте это здесь.

В дополнение к отсутствующим import 'rxjs/add/observable/throw'; как вы уже заявили, в приведенном вами примере возникла проблема с анализом объекта ответа об ошибке в json. В случае успешного ответа, res объект ответа содержит _body свойство, которое имеет тип Objectи, таким образом, вы можете преобразовать его с .json(), Тем не менее, в случае неудачного ответа, error объект ответа содержит _body свойство, которое содержит HTML, где вы не можете использовать .json() метод. Вы можете проверить все это в своей консоли, проверив error объект ответа.

Вам не нужно конвертировать error объект ответа с .json() так как у вас уже есть код состояния и информация о статусе там. Вы можете проверить это в ссылке на Plunker, которую я разместил.

Другие вопросы по тегам