我一直在使用angular.io文档中使用的http错误处理策略:
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
private handleError (error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
在某些情况下,我将收到204状态代码(无数据),而不是JSON响应。在这种情况下,在未通过res.json()
解析结果之前不会调用错误处理程序,因此传递给handleError的错误是“error.json不是函数”。 / p>
如何查询响应流以检查200(OK)状态代码或响应标头内容类型“application / json”,并通过更相关的错误消息发出错误处理程序信号?