Як поділитися файлами cookie перехресного походження? Більш конкретно, як використовувати Set-Cookie
заголовок у поєднанні з заголовком Access-Control-Allow-Origin
?
Ось пояснення моєї ситуації:
Я намагаюся встановити файл cookie для API, який працює localhost:4000
у веб-програмі, розміщеній на localhost:3000
.
Здається, я отримую правильні заголовки відповідей у браузері, але, на жаль, вони не мають ефекту. Ось заголовки відповідей:
HTTP / 1.1 200 OK Access-Control-Allow-Origin: http: // localhost: 3000 Варіант: Походження, Прийняти-Кодування Set-Cookie: маркер = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Макс-вік = 86400; Домен = localhost: 4000; Шлях = /; Закінчується = Вівторок, 19 вересня 2017 21:11:36 GMT; HttpOnly Тип вмісту: application / json; charset = utf-8 Довжина вмісту: 180 ETag: W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" Дата: пн, 18 вересня 2017, 21:11:36 GMT Зв'язок: підтримувати життя
Крім того, я бачу файл cookie під Response Cookies
час перевірки трафіку за допомогою вкладки Мережа інструментів розробника Chrome. Тим не менше, я не бачу, як було встановлено файл cookie на вкладці Програма під Storage/Cookies
. Я не бачу помилок CORS, тому я вважаю, що я пропустив щось інше.
Будь-які пропозиції?
Оновлення I:
Я використовую модуль запитів у програмі React-Redux для видачі запиту /signin
кінцевій точці на сервері. Для сервера я використовую express.
Експрес-сервер:
res.cookie ('маркер', 'xxx-xxx-xxx', {maxAge: 86400000, httpOnly: true, домен: 'localhost: 3000'})
Запит у браузері:
request.post ({uri: '/ signin', json: {userName: 'userOne', password: '123456'}}, (помилка, відповідь, тіло) => { // робити речі })
Оновлення II:
Я встановлюю заголовки запитів та відповідей зараз як божевільні, переконуючись, що вони присутні як у запиті, так і у відповіді. Нижче скріншот. Зверніть увагу на заголовки Access-Control-Allow-Credentials
, Access-Control-Allow-Headers
, Access-Control-Allow-Methods
і Access-Control-Allow-Origin
. Дивлячись на проблему, яку я знайшов у github Axios , я відчуваю, що всі необхідні заголовки тепер встановлені. Тим не менше, все ще не везе ...