базовый HttpInterceptor никогда не достиг - PullRequest
0 голосов
/ 21 января 2019

Я хочу реализовать HttpInterceptor для обработки ошибки 404. Пока я просто хочу что-то записать в консоли, когда достигается HttpInterceptor.

Я реализую простой HttpInterceptor, но ничего не работает.

app.module.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]
})

errorhandler.interceptor.ts

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class ErrorHandlerInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log('Hello');
    return next.handle(request);
  }
}

Если вы хотите увидеть полный код, вы можете проверить мой github

Если я правильно понял, консоль должна отображать «Hello» при каждом достижении перехватчика. Но когда я пытаюсь достичь несуществующего URL-адреса, на консоли не отображается «Hello», только ошибка, которую я хочу обработать ...

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 21 января 2019

Перехватчик используется для обработки исходящих запросов.Допустим, вы используете HttpClient, чтобы сделать запрос get.Затем он пройдет через перехватчик.Попытка перейти к несуществующему маршруту не перехватывается перехватчиком.

...