Axios ottiene l’accesso ai campi dell’intestazione di risposta

Sto costruendo un’app di frontend con React e Redux e sto usando gli assiomi per eseguire le mie richieste. Vorrei avere accesso a tutti i campi nell’intestazione della risposta. Nel mio browser posso controllare l’intestazione e posso vedere che tutti i campi di cui ho bisogno sono presenti (come token, uid, ecc …), ma quando chiamo

const request = axios.post(`${ROOT_URL}/auth/sign_in`, props); request.then((response)=>{ console.log(response.headers); }); 

Ho capito

 Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"} 

Qui la mia scheda di rete del browser, come è ansible vedere tutti gli altri campi sono presenti.

inserisci la descrizione dell'immagine qui

Bests.

In caso di richieste CORS, i browser possono solo accedere alle seguenti intestazioni di risposta per impostazione predefinita:

  • Cache-Control
  • Content-Language
  • Tipo di contenuto
  • Scade
  • Ultima modifica
  • Pragma

Se si desidera che l’app client sia in grado di accedere ad altre intestazioni, è necessario impostare l’intestazione Access-Control-Expose-Headers sul server:

 Access-Control-Expose-Headers: Access-Token, Uid 

Questo mi ha davvero aiutato, grazie a Nick Uraltsev per la tua risposta.

Per quelli di voi che usano nodejs con cors :

 ... const cors = require('cors'); const corsOptions = { exposedHeaders: 'Authorization', }; app.use(cors(corsOptions)); ... 

Nel caso in cui si invii la risposta nel modo di res.header('Authorization', `Bearer ${token}`).send();

gli utenti php lo fanno

 header('Access-Control-Expose-Headers: Authentication');