现在我处理http请求的方式(borrow this answer)是:
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() }
}
});
}
这可以正常工作,但如果返回的状态码不是200,angular2就会失败.例如,如果用户想要发布某个内容,而服务器返回400,angular 2将抛出异常:
未捕获异常:[对象]
我怎样才能避免这种情况?我想在我的应用程序中处理这些状态代码,以增强用户体验(显示错误等)