Angular 7 - глобальный HTTP-перехватчик для всего приложения - PullRequest
0 голосов
/ 15 декабря 2018

В моем app.module.ts я зарегистрировал HTTP-перехватчик, подобный этому:

providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: TokenInterceptorService,
      multi: true,
    },
  ],

Однако запросы, сделанные из лениво загруженного модуля, не используют Interceptor.Он работает только при регистрации HTTP-перехватчика в модуле с отложенной загрузкой.

Но я хочу предоставить его только один раз в app.module.ts.

Любойидеи о том, как это сделать?Или я должен предоставить это в каждом модуле?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Я думаю, что в вашем случае происходит нечто подобное, что можно наблюдать и из этого потока GitHub .Дж. Б. Низет также, вероятно, ссылается на то же самое в своем комментарии.

Скорее всего, вы добавили HttpClientModule в массив imports вашего LazilyLoadedModule.Следовательно, он не использует InterceptorService.Чтобы заставить это работать, просто избавьтесь от этого оттуда.Как только это будет сделано, он будет использовать глобальную службу перехватчика HTTP.


Вот вам Рабочий пример StackBlitz для вашей ссылки.

0 голосов
/ 15 декабря 2018

Вот что я сделал, чтобы это работало.Благодаря @David и @JB Nizet

app.module.ts app module

lazy loaded module lazy loaded module

interceptor.service.ts interceptor

...