У меня есть веб-приложение, которому требуется доступ к siteA и siteB (оба находятся в моем ведении). После того, как веб-приложение общается с siteA (и получает повар ie от siteA) и переходит на siteB, ему нужно позвонить с siteA, но запрос http не содержит никакого cook ie, хотя я настроил (через cors) siteA, чтобы доверять siteB и разрешать учетные данные.
Гуглял и читал документы как на SO, так и на других сайтах, но я просто не могу заставить повара ie быть отправленным в запрос HTTP. Вот javascript, который выполняет API-вызов с siteA (работает на странице на siteB, браузер chrome)
await (await fetch("http://siteA/api/1/greeting", {credentials: 'same-origin'})).text()
"Greetings from Spring Boot!"
Вот HTTP-запрос, отправленный вышеуказанным javascript.
GET /api/1/greeting HTTP/1.1
Host: siteA
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4117.2 Safari/537.36
Accept: */*
Origin: https://siteB
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Вот ответ:
HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: http://siteB
Access-Control-Allow-Credentials: true
Set-Cookie: jname=joe; HttpOnly
Content-Type: text/plain;charset=UTF-8
Content-Length: 27
Date: Sun, 26 Apr 2020 17:58:48 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Любая помощь или идеи приветствуются!
PS1: Когда я обновляю sh веб-страницу сайта A, я можно видеть (из консоли разработчика), что запрос имеет повара ie.
PS2: попытался использовать credentials: 'include'
во фрагменте javascript, он тоже не работал.