Axios получает доступ к полям заголовка ответа

Я создаю приложение frontend с React и Redux, и я использую axios для выполнения моих запросов. Я хотел бы получить доступ ко всем полям заголовка ответа. В моем браузере я могу проверить заголовок, и я вижу, что все поля, которые мне нужны, присутствуют(например, токен, uid и т. д...), но когда я звоню

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

Я вам просто

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

здесь вкладка "сеть браузера", как вы можете видеть, все остальные поля подарок.

enter image description here

Bests.

2 ответов


в случае запросов CORS браузеры могут получить доступ только к следующим заголовкам ответов по умолчанию:

  • Кэш-Контроля
  • Content-Language
  • Контент-Тип
  • истекает
  • Последнего Изменения
  • Прагма

Если вы хотите, чтобы ваше клиентское приложение имело доступ к другим заголовкам, вам нужно установить Access-Control-Expose-Headers заголовок на сервере:

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

Это действительно помогло мне, спасибо Ник Uraltsev за ваш ответ.

Если вы используете nodejs С cors:

...
const cors = require('cors');

const corsOptions = {
  exposedHeaders: 'Authorization',
};

app.use(cors(corsOptions));
...

в случае, если вы отправляете ответ на пути res.header('Authorization', `Bearer ${token}`).send();