Я написал Http Interceptor
на Angular 6.Цель состоит в том, чтобы перезагрузить домашнюю страницу, когда возвращается 302 status
.(любой внутренний API, возвращающий статус 302) В настоящее время я не могу понять, почему Interceptor
ведет себя так, как оно есть.
Ниже приведен код:
@Injectable()
export class ResponseHandler implements HttpInterceptor{
constructor(){
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
map((event: HttpEvent<any>) => {
if(event instanceof HttpResponse){
if(event.status === 302){
console.log('HttpResponse 302 status ');
window.location.reload();
return EMPTY;
}
}
})
)
}
}
Фактическое поведение:
1) Я впервые захожу на домашнюю страницу явно.(e.g: /home)
2) Но странно то, что первоначальный вызов для извлечения самого возраста не происходит
3) Кажется, запрос заблокирован, достигнув сервера.
4) Когда перехватчик удален, этот первоначальный вызов происходит (/home)
Я не могу понять, почему это поведение?
Почему запрос блокируется, поскольку я НЕ вмешиваюсь в запрос, который должен быть передан как есть, чтобы завершить конечную точку покоя.
Он должен быть перехвачен только тогда, когдаHttpResponse
возвращается с кодом 302 error
.
Кто-нибудь может помочь, пожалуйста?