基本的HttpInterceptor从未达到

时间:2019-01-21 12:26:29

标签: angular angular-http-interceptors

我想实现HttpInterceptor来处理404错误。现在,我只想在到达HttpInterceptor时在控制台中记录一些内容。

我实现了一个基本的NoNothing HttpInterceptor,但是没有任何作用。

app.module.ts

#include <stdio.h>

int main() {

  int n;
  scanf("%d",&n);
  char word[n][100];
  int change[n][100];
  char alphabet[]="abcdefghijklmnopqrstuvwxyz";
  for(int i=0;i<n;i++){
    scanf("%s",&word[i]);
  }
  for(int i=0;i<n;i++){
    for(int j=0;j<100;j++){
      change[i][j]=0;
    }
  }
  for(int i=0;i<n;i++){
    for(int j=0;j<100;j++){
      for(int k=0;k<=26;k++){
        if(word[i][j]==alphabet[k]){
          change[i][j]=k+1;
        }
      }
      if(word[i][j]=='\0'){
        for(int k=j+1;k<100;k++){
          change[i][k]=0;
        }
      }
    }
  }

  for(int i=0;i<n-1;i++){
    for(int j=0;j<100;j++){
      if(change[i][j]>change[i+1][j]){
        int temp[100];
        for(int k=0;k<100;k++){
          temp[k]=change[i][k];
        }
        for(int k=0;k<100;k++){
          change[i][k]=change[i+1][k];
        }
        for(int k=0;k<100;k++){
          change[i+1][k]=temp[k];
        }
      }
    }
  }


  for(int i=0;i<n;i++){
    for(int j=0;j<100;j++){
      for(int k=1;k<=27;k++){
        if(change[i][j]==k){
          word[i][j]=alphabet[k-1];
        }
      }
    }
  }
  for(int i=0;i<n;i++){
    printf("%s\n",word[i]);
  }

  return 0;
}

errorhandler.interceptor.ts

import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { ErrorHandlerInterceptor } from './blocks/interceptor/errorhandler.interceptor';
@NgModule({
  imports: [
    ...
    HttpClientModule
  declarations: [...],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: ErrorHandlerInterceptor,
      multi: true
    }
  ],
  bootstrap: [MainComponent]
})

如果您想查看完整的代码,可以查看我的github

如果我理解正确,则每次到达拦截器时,控制台都应显示“ Hello”。但是,当我尝试访问不存在的URL时,控制台不会显示“ Hello”,只是我要处理的错误...

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

拦截器用于处理传出的请求。假设您使用HttpClient发出了get请求。然后它将通过拦截器。拦截器无法捕捉到导航到不存在的路线的信息。