J'ai écrit un HttpInterceptor angulaire (4.3.6) pour ajouter des champs d'en-tête, mais l'en-tête n'est pas mis à jour si je les inspecte dans le débogueur. Une idée?Angulaire HttpInterceptor ne changeant pas d'en-tête
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('AuthInterceptor at work');
const contentTypeReq = req.clone({
headers: req.headers.set('Content-Type', 'application/json')
});
const token = localStorage.getItem('token');
if (token) {
const authReq = contentTypeReq.clone({
headers: req.headers.set('Authorization', 'Bearer ' + token)
});
return next.handle(authReq);
}
// Pass on the cloned request instead of the original request.
return next.handle(contentTypeReq);
}
}
La définition du type de contenu est inutile. Angular fait cela pour vous. Avez-vous exécuté votre code en utilisant le débogueur? Ou juste ajouté console.log() pour vérifier que le jeton est défini? –
Oui - Je l'ai couru dans le débogueur et voir que son appel est appelé. Mais l'en-tête n'est pas mis à jour. Voir https://angular.io/guide/http#setting-new-headers – netshark1000