Ниже приведены заголовки ответа, которые я отправляю со своего сервера на запрос входа в систему. Сервер работает на локальном хосте: 8090, и я обслуживаю сайт с локального хоста: 3000 с использованием ответных скриптов. И Chrome, и Firefox хранят cookie для «сайта» http://localhost:3000.. Я использую axios для отправки запросов API, как показано ниже. Проблема в том, что последующие запросы API не отправляют куки. Из поисков вокруг я считаю, что порт не должен иметь никакого значения, поэтому вопрос в том, почему cookie не устанавливается?
HTTP/1.1 200 OK
Vary: Origin
Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Type: application/json
Content-Length: 42
Set-Cookie: appcredentials=gXXXXXBb7GukifOC_xoQrQAEilZ6MlKa2IbNAPo9HIiIvw97qCpqUnBPfcdBp-o4eZVAXkCPVNfCFMFTlr-mi5-Ie9FkCg3BO-PGw-3sfDL3dPKA66vNNevK9089C7DCkBMwYpEcz3dm5HVcHVTXQVRk9M2oBNrDzXhczfhJFI_gubdYDt2BKjRCx6bRUkfgPEV_N-VyKmbR; Domain=localhost; Path=/
userId="gh@gh.com"; expires=Wed, 28 Nov 2018 18:38:06 GMT; Path=/
Date: Wed, 14 Nov 2018 18:35:36 GMT
Server: Python/3.5 aiohttp/2.2.5
Вызов Axios:
export const get_features = (callback) => async dispatch => {
console.log('get the features man', cookie.load('appcredentials'))
try {
const response = await axios.get(
'http://localhost:8090/app/features',
null,
{withCredentials:true}
);
dispatch({ type: GET_FEATURES, payload: response.data });
callback();
} catch (e) {
dispatch({ type: AUTH_ERROR, payload: e });
}
};
Между прочим, console.log правильно записывает значение cookie.