【发布时间】:2016-08-31 08:39:15
【问题描述】:
现在我做http请求的方式(借用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 将抛出异常:
未捕获的异常:[object Object]
我怎样才能避免这种情况?我想在我的应用中处理这些状态代码,以增强用户体验(显示错误等)
【问题讨论】:
标签: typescript angular