Safari-无法使用JavaScript中的iframe在跨域中设置Cookie

时间:2019-01-31 00:43:09

标签: javascript cookies iframe safari cross-domain

有两个不同的域:域A和域B。

在域A中,我们对Java代码进行XMLHttpRequest生成唯一的ID。在前端(javascript)中收到后,我们尝试通过使用iframe在域A和B中的cookie中进行设置,以使A和B共享ID值。 (在域A的HTML中,有一个iframe,其src设置为域B的URL。)

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

要启用跨域通信,我们使用以下命令:

  1. 设置xhttp.withCredentials = true;
  2. 设置(“访问控制允许来源”,域A的URL);
  3. 设置(“ Access-Control-Allow-Credentials”,true);

但是,Safari不允许我们通过域A的iframe在域B中设置Cookie。

我们不想使用以下方法将用户重定向到域B,然后再重定向到域A:

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

或者我们也可以在域B中使用一个iframe,将src设置为域A作为替代方案。但是我们想探索其他选择。

我们了解Safari不允许第三方设置cookie,除非根据其安全策略之前已访问过该域。 但是没有人知道在从未访问过目标域(不在缓存中)时按第三域设置cookie的方法吗?

谢谢

0 个答案:

没有答案