Je déclenche un HTTP
et j'obtiens une réponse valide de sa part. La réponse contient également un en-tête X-Token
que je souhaite lire. J'essaie d'utiliser le code ci-dessous pour lire les en-têtes, mais j'obtiens null comme résultat.
this.currentlyExecuting.request = this.http.request(reqParams.type, reqParams.url, {
body: reqParams.body,
responseType: 'json',
observe: 'response'
}).subscribe(
(_response: any) => {
// Also tried _response.headers.init();
const header = _response.headers.get('X-Token');
console.log(header);
onComplete(_response.body);
},
_error => {
onComplete({
code: -1,
message: Constants.WEBSERVICE_INTERNET_NOT_CONNNECTED
});
}
);
La réponse de l API
lorsqu'il est vérifié dans Chrome inspect, l'en-tête est présent.
4 votes
Avez-vous exposé le x-token du côté du serveur ? en utilisant "access-control-expose-headers". parce que tous les en-têtes ne sont pas autorisés à être accédés du côté du client, vous devez les exposer du côté du serveur.
7 votes
S'il l'a dans la console, alors oui, il l'a exposée.
2 votes
@HrishikeshKale : Vous avez raison. Access-Control-Expose-Headers a fonctionné. Vous pouvez publier ceci comme réponse.
0 votes
J'ai posté ceci comme une réponse. bon codage :)
5 votes
Trichetriche, je ne suis pas d'accord. J'ai eu une situation où j'ajoutais l'en-tête sur le serveur et pouvais le voir dans la console du navigateur, mais le code du navigateur ne pouvait pas le voir. J'ai dû le marquer explicitement pour qu'il soit exposé (dans mon code serveur) au navigateur à cause de CORS.
0 votes
Voir ça : stackoverflow.com/questions/58601675/