#angular #safari #angular-ui-router #interceptor #angular-http-interceptors
Вопрос:
Я сохранил доступ из своего API в локальном хранилище. Я могу без проблем звонить в API, используя перехватчик…..
import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor() {}
intercept(req: HttpRequest<any>, next: HttpHandler) {
let authRequest = req;
const authToken = localStorage.getItem('token');
if (authToken) {
console.log('injecting bearer token');
authRequest = req.clone({
headers: req.headers.set('Authorization' , 'Bearer ' [authToken])
});
} else {
console.log('not injecting bearer token');
}
return next.handle(authRequest);
}
}
Однако, когда я перехожу на другую страницу, перенаправленную с помощью дополнения «Нравится»..
singleToggle() {
this.router.navigate(['singleItem', this.id]);
this.singleItem = !this.item;
}
Перехватчик загружен неправильно, API заявляет, что я не вошел в систему, а доступ в хранилище локали отображается как null. Это происходит только на сафари. Chrome, edge и firefox работают нормально.