Прямо сейчас, как я делаю 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: [object Object]
Как я могу избежать этого? Я бы хотел обработать эти коды состояния в своем приложении, чтобы улучшить пользовательский интерфейс (показать ошибки и т.д.).