Je construis une application frontale avec React et Redux et j'utilise axios pour exécuter mes requêtes. Je souhaite avoir accès à tous les champs de l'en-tête de la réponse. Dans mon navigateur, je peux inspecter l'en-tête et je peux voir que tous les champs dont j'ai besoin sont présents (tels que token, uid, etc ...), mais quand j'appelle
const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
console.log(response.headers);
});
Je reçois juste
Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}
Ici, l'onglet réseau de mon navigateur, comme vous pouvez le voir, tous les autres champs sont présents.
Bests.
http-headers
es6-promise
axios
TWONEKSONE
la source
la source
axios.defaults.headers
pour configurer les paramètres d'en-tête REQUEST? J'ai besoin d'accéder à celui de RESPONSE. @BenHareRéponses:
En cas de requêtes CORS, les navigateurs ne peuvent accéder par défaut qu'aux en-têtes de réponse suivants:
Si vous souhaitez que votre application cliente puisse accéder à d'autres en-têtes, vous devez définir l'en - tête Access-Control-Expose-Headers sur le serveur:
la source
expose: ['Access-Token', 'Uid']
l'origine comme:resource '*', :headers => :any, :methods => [:get, :post, :put, :patch, :delete, :options, :head], expose: ['Access-Token', 'Uid']
'Access-Control-Expose-Headers' 'Authorization, X-Suggested-Filename, content-disposition' always;
Je ne vois toujours quecontent-type: "application/pdf"
vraiment besoin de tirercontent-disposition
Cela m'a vraiment aidé, merci Nick Uraltsev pour votre réponse.
Pour ceux d'entre vous qui utilisent nodejs avec des cors :
Dans le cas où vous envoyez la réponse sous la forme de
res.header('Authorization', `Bearer ${token}`).send();
la source
J'étais confronté au même problème. Vous avez fait cela dans mon "WebSecurity.java", il s'agit de la méthode setExposedHeaders dans la configuration cors.
J'espère que ca fonctionne.
la source
Face au même problème dans le noyau asp.net J'espère que cela aide
la source
Selon la documentation officielle :
Cela peut aider si vous voulez les en-têtes HTTP avec lesquels le serveur a répondu . Tous les noms d'en-tête sont en minuscules et sont accessibles en utilisant la notation entre crochets. Exemple:
response.headers['content-type']
donnera quelque chose comme: headers: {},la source
Pour le SpringBoot2, ajoutez simplement
à votre code d'implémentation de filtre CORS pour avoir mis en liste blanche
custom-header1
,custom-header2
etc.la source
pour l'aide de django
la source
Pour Spring Boot 2, si vous ne souhaitez pas utiliser la configuration CORS globale, vous pouvez le faire par méthode ou par niveau de classe / contrôleur en utilisant une
@CrossOrigin
annotation avecexposedHeaders
atribute.Par exemple, pour ajouter un en-tête
authorization
pour lesYourController
méthodes:la source