Safari - Невозможно установить cookie в кросс-домене с помощью iframe в javascript - PullRequest
0 голосов
/ 31 января 2019

Существует два разных домена: домен A и домен B.

В домене A мы создаем запрос XMLHttpRequest для кода Java, который генерирует уникальный идентификатор.Получив его во внешнем интерфейсе (javascript), мы пытаемся установить его в cookie как в домене A, так и в B, используя iframe, чтобы и A, и B совместно использовали значение id.(Внутри HTML домена A есть iframe с src, установленным в URL домена B).

document.cookie = "ID=" + response.id + ";expires=Tue, 18 Feb 2087 00:38:15 GMT;path=/;secure";

Чтобы включить междоменную связь, мы используем следующее:

  1. Setxhttp.withCredentials = true;
  2. Set ("Access-Control-Allow-Origin", URL домена A);
  3. Set ("Access-Control-Allow-Credentials", true);

Однако Safari не позволяет нам устанавливать cookie в Домене B с помощью iframe в Домене A.

Мы не хотим перенаправлять пользователей в Домен B, а затем обратно в Домен A, используяthis:

 window.location.replace(Domain B);
 window.location.replace(document.referrer);

Или у нас может быть iframe в Домене B с src, установленным в Домен A в качестве альтернативы.Но мы хотели бы изучить другие варианты.

Мы понимаем, что Safari не разрешает установку файлов cookie третьей стороной, если этот домен не был посещен ранее в соответствии с его политикой безопасности.Но кто-нибудь знает обходной путь для установки cookie третьим доменом, когда целевой домен никогда не посещался (не в кеше)?

Спасибо

...