Угловой 5 ответный перехватчик не работает - PullRequest
0 голосов
/ 27 сентября 2018

Мой перехватчик запросов на приложения Angular 5 работает, так как я могу прикрепить к запросу jwt.

Мой перехватчик ответов не работает, поскольку он в первую очередь влияет на мои запросы, когда я делаю запросы.И это также не перехватывает ответы от моего API.

Примечание: Без перехватчика ответа запросы работают нормально (только с перехватчиком запросов).

То есть перехватчик ответа

@Injectable()
export class ResponseInterceptor implements HttpInterceptor {
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {  

         return next.handle(req)  
             .map(resp => {  
                 if (resp instanceof HttpResponse) {  
                    console.log('Response is ::');  
                     console.log(resp.body)  
                 }  
                 return resp;  
             }).catch(err => {  
                 console.log(err);  
                 if (err instanceof HttpResponse)  
  {  
                     console.log(err.status);  
                     console.log(err.body);  
                 }  
   
                 return Observable.of(err);  
             });  
   
     }  
}

Это перехватчик запросов

intercept(req: HttpRequest<any>,
              next: HttpHandler): Observable<HttpHeaderResponse | HttpResponse<any> | HttpEvent<any>> {

        const idToken = localStorage.getItem("admintoken") ? localStorage.getItem("admintoken") : localStorage.getItem("token");

        if (idToken) {
            const cloned = req.clone({
                headers: req.headers.set("Authorization",
                    "Bearer:" + idToken)
            });

            return next.handle(cloned);
        }
        else {
            return next.handle(req);
        }

        
    }

Это пример HTTP-запроса через модуль HttpClient, он находится внутри службы для выполнения API-запросов.

getGroups():Observable<Group[]>{
    return this.http.post(this.all_groups_url,{
      headers: new HttpHeaders().set('Accept', "application/json;q=0.9,*/*;q=0.8")
    })
    .map((groups:Group[]) => {
        if(groups){
          return groups;  
        }
        else{
          return null;
        }
    })
    .pipe(
      catchError(this.handleError)
    )
  }

А вот мой раздел провайдеров app.module

providers: [
  AuthService,
  AuthGuardService,
  UnauthGuardService,
  {
    provide: HTTP_INTERCEPTORS,
    useClass: ResponseInterceptor,
    multi: true
  },
  {
    provide: HTTP_INTERCEPTORS,
    useClass: JWTInterceptor,
    multi: true
  }
],

Мне нужно знать, как заставить перехватчики запросов и ответов работать вместе, сейчас работает только перехватчик запросов, и кажется, что перехватчик ответов блокирует его, а неделает свою работу.

И мне нужно перехватить ответы от API для просроченных токенов и неактивированных пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...