Файлы cookie HTTP и запросы Ajax через HTTPS

Я знаю, что об этом уже спрашивали в различных формах, но я не могу обойти проблему. Я пытался использовать как jQuery, так и собственный JS API для выполнения запросов Ajax.

У меня следующая ситуация (см. прилагаемую диаграмму):

  1. Браузер отправляет HTTP-запрос
  2. Сервер отвечает и устанавливает постоянный файл cookie
  3. Браузер делает HTTP-запрос Ajax, файл cookie в порядке
  4. Сервер отвечает, как и ожидалось , обновляет Cookie
  5. Браузер делает запрос HTTPS Ajax, Cookie больше нет (?!)
  6. Сервер дает ответ "по умолчанию", так как Cookie отсутствует (непреднамеренное поведение)

Прежде чем кто-либо начнет лекцию о кросс -domain запросы позволяют мне указать пару вещей:

  • Я знаю, что это междоменный запрос (другой протокол), и поэтому Сервер устанавливает заголовок Access-Control-Allow-Originв ответе (и я использую Chrome и Firefox, оба из которых поддерживают CORS)
  • Однако я также знаю, что файл cookie HTTP должен управляться через HTTPS (см. здесь ), так как хост тот же
  • (EDIT) Файл cookie правильно установлен для общего домена (например, .domain.ext), и ни один из них e HttpOnly и безопасные флаги не установлены

Итак, почему, почему, почему браузер не передает cookie при вызове HTTPS Ajax? Любые идеи? Я вот-вот сойду с ума...

     +-----------+ HTTP Request     +-----------+
     |Browser    |+---------------->|Server     |
     +-----------+                  +-----------+

                   HTTP Response
                  <----------------+
                   Set-cookie

                   Ajax HTTP Req.
                  +---------------->
                   Cookie (OK)

                   HTTP Response
                  <----------------+
                   Set-cookie (OK)

                   Ajax HTTPS Req.
                  +---------------->
                   No Cookie (!!!)

43
задан Community 23 May 2017 в 12:17
поделиться