у меня есть:
1) Клиентское приложение, имеющее собственный домен: http://client.com
2) Приложение на стороне сервера с отдельным доменом: http://server.com
Теперь
сценарий:
1) Открытие http://client.com/home в браузере, который отображает HTML-страницу.
2) http://client.com/home перенаправляет на http://server.com/login
3) http://server.com/login сохраняет cookie "auth" и отправляет инструкцию по перенаправлению на http://client.com/welcome
Ответ:
Access-Control-Allow-Origin: *
Соединение: keep-alive
Длина содержимого: 104
Content-Type: text / html; кодировка = UTF-8 * +1036 *
Дата: ср., 16 января 2019 г. 10:47:11 по Гринвичу
Расположение: http://client.com/welcome
Set-Cookie: auth = 1479da80-197c-11e9-ba74-59606594e2fb; Path = /
Варь: Принять
X-Powered-By: Express
4) Браузер получает ответ, который содержит cookie 'auth'
5) Браузер перенаправляет себя на http://client.com/welcome
6) cookie "auth" отправляется на http://client.com/welcome
Запрос:
Cookie: auth = 1479da80-197c-11e9-ba74-59606594e2fb
7) http://client.com/welcome возвращает HTML, но не возвращает cookie 'auth'
8) http://client.com/welcome отправляет AJAX-запрос на http://server.com/data (CORS включен), но файл cookie "auth" не отправляется
9) http://server.com/data не распознает пользователя, потому что нет cookie
Клиентская сторона - это угловое приложение, размещенное на Node.js
Edit:
Как и предполагалось, я добавил в ответ server.com:
Access-Control-Allow-Credentials: true
но ничего не изменилось.
Соответствующий код на стороне клиента:
const headerOptions = new HttpHeaders({
'Content-Type': 'application/json', 'withCredentials': 'true', 'Access-Control-Allow-Origin': 'true', 'Access-Control-Allow-Credentials': 'true'
});
this.httpClient.get<any>(this.baseUrl + "data", { headers: headerOptions }).subscribe((res) => {