Отображать ошибки типа 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, которую я разместил.