如何用angular2拦截http错误?

时间:2015-12-30 00:26:24

标签: angularjs http angular http-response-codes

是否存在类似于角度1.x' Interceptor API的API?

我希望能够在

的应用程序启动时添加拦截器
  • 每当返回401状态代码时显示登录对话框
  • 每当返回5xx状态代码时都会显示一般错误消息

应用程序发出的每个http请求。

1 个答案:

答案 0 :(得分:3)

您可以创建自己的HTTPConnection来处理错误,并在引导时将其注入根应用程序组件。

export class CustomHTTPConnection implements Connection
{
}

然后在引导时注入它,如下所示

bootstrap([provider(Connection,{useClass:CustomHTTPConnection}]);

如果你不想提供自定义连接类,可以为每个单独的请求执行此操作,因为Http返回一个observable,它是3个参数:onNext,onError,onCompleted。

您可以按如下方式使用它:

class Component
{
constructor(private httpService:HttpService){
}
onInit(){
 this.httpService.getData().subscribe(
  ()=>{},  //on Next
  ()=>{}   //onError
}
}