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


Я создаю интерфейсное приложение с 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   51   2016-06-18 16:29:58

2 ответа:

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

  • Cache-Control
  • Content-Language
  • Content-Type
  • истекает
  • Последнего Изменения
  • Pragma

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

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

это мне очень помогло, спасибо Нику Уральцеву за ваш ответ.

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

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

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

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

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