Я использую Angular 6.1.10
и rxjs 6.3.3
.У меня есть какой-то сервис и этот метод, который получает данные, когда пользователь переходит на главную страницу ("/"):
getCampaigns(): Observable<CampaignDto[]> {
return this.http.get<CampaignDto[]>(this.campaignsUrl)
.pipe(
tap(campaigns => console.log(`fetched ${campaigns.length} campaigns`)),
catchError(this.errorReporter.handleError('getCampaigns', []))
);
}
Это работает, но когда я запускаю приложение и пытаюсь обновить страницу, нажавF5 быстро, например, два раза, я получаю сообщение об ошибке в консоли браузера: режим разработки: ![enter image description here](https://i.stack.imgur.com/pm4H5.jpg)
режим работы: ![enter image description here](https://i.stack.imgur.com/DILP9.jpg)
Если я медленно нажму F5, когда предыдущее обновление страницы сработало, ошибки не будет!Я сломал свой мозг, почему происходит эта ошибка?Ошибка возникает только в браузере Firefox 60.4.0, возможно, esr и ниже, в последних версиях Firefox и Chrome ошибок нет.Любая помощь.
Что не так?Может быть, это ошибка в rxjs
?Это не проблема.Мой фронтенд и бэкэнд используют один URL localhost:8080
.Проблема существует в режимах разработки и разработки.
ОБНОВЛЕНИЕ :
У меня TokenInterceptor
:
@Injectable()
export class TokenInterceptor implements HttpInterceptor {
constructor(private inj: Injector) {
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const auth = this.inj.get(AuthService);
const xAuthToken = auth.xAuthToken;
if (xAuthToken) {
console.log(`TokenInterceptor. Getting token: ${xAuthToken}`);
request = request.clone({
setHeaders: {
'x-auth-token': `${auth.xAuthToken}`
}
});
}
return next.handle(request);
}
}