Как работать с кодами состояния http, отличными от 200 в Angular 2
Прямо сейчас, как я делаю http-запросы (заимствовано изэтот ответ) это:
POST(url, data) {
var headers = new Headers(), authtoken = localStorage.getItem('authtoken');
headers.append("Content-Type", 'application/json');
if (authtoken) {
headers.append("Authorization", 'Token ' + authtoken)
}
headers.append("Accept", 'application/json');
var requestoptions = new RequestOptions({
method: RequestMethod.Post,
url: this.apiURL + url,
headers: headers,
body: JSON.stringify(data)
})
return this.http.request(new Request(requestoptions))
.map((res: Response) => {
if (res) {
return { status: res.status, json: res.json() }
}
});
}
Это работает нормально, за исключением того факта, что angular2 завершится с ошибкой, если возвращенный код состояния будет отличным от 200. Например, если пользователь хочет что-то опубликовать, а сервер возвращает 400, angular 2 выдаст исключение:
uncaught исключения: [объект объекта]
Как я могу избежать этого? Я хотел бы обработать эти коды состояния в своем приложении, чтобы улучшить взаимодействие с пользователем (показать ошибки и т. Д.)