Я хочу перехватывать каждый запрос к api и проверять код состояния, чтобы он мог отображать сообщение или перенаправлять на определенный компонент, но он дает следующую ошибку:
main.js: 1580 TypeError: Вы указали undefined там, где ожидался поток. Вы можете предоставить> Observable, Promise, Array или Iterable.at subscribeTo (vendor.js: 179688) по адресу subscribeToResult (vendor.js: 179824) по адресу MergeMapSubscriber._innerSub (vendor.js: 175271) по адресу mergeMapSubscriber._torNeNext. js: 175265) в MergeMapSubscriber._next (vendor.js: 175248) в MergeMapSubscriber.next (vendor.js: 170316) в Observable._subscribe (vendor.js: 172287) в Observable._trySubscribe (vendor.2js) в Observable._trySubscribe (vendor.2js) в Observable. .subscribe (vendor.js: 169758) в MergeMapOperator.call (vendor.js: 175233)
Это мой AuthInterceptor:
import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpHeaders, HttpErrorResponse } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { tap } from 'rxjs/operators';
import { CommonService } from '../common.service';
import { Router } from '@angular/router';
import { AuthenticationService } from './authentication.service';
@Injectable({
providedIn: 'root'
})
export class AuthInterceptorService implements HttpInterceptor {
constructor(
private common: CommonService,
private router: Router,
private auth: AuthenticationService
) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (req.headers.get('No-Auth') === 'True') {
return next.handle(req.clone());
}
// To attach header on every request
if (localStorage.getItem('currentUser') != null) {
const clonedreq = req.clone({
headers: req.headers.set('Authorization', 'Bearer ' + localStorage.getItem('currentUser'))
});
return next.handle(clonedreq).pipe(tap(
succ => { },
err => {
if (err.status === 401) {
this.router.navigateByUrl('/login');
} else if (err.status === 403) {
this.router.navigateByUrl('/Forbidden');
} else if (err.status === 400) {
this.router.navigateByUrl('/error404');
}
}
));
} else {
this.router.navigateByUrl('/login');
}
}
}
Я не могу понять, в какой строке или блоке это вызвано, так как это нигде не написано в ошибке. Проект скомпилирован отлично. эта ошибка отображается почти на каждой странице проекта, где отправляется запрос к WEB Api.