iframe 中的 Safari 和 cookie

xRo*_*bot 6 javascript cookies

Safari 浏览器默认阻止第 3 方 cookie。

我有站点 A(主站点),它在 iframe 中加载站点 B(框架站点)。站点 B 设置一些 cookie(当用户单击按钮时),以便正常运行。这些 cookie 称为第 3 方 cookie,因为它们不是由站点 A 设置的。

所以我找到了这个解决方案:https ://github.com/vitr/safari-cookie-in-iframe

但就我而言,它不起作用,因为要设置 cookie,用户首先必须单击按钮。

Framed.html 实际上是这样的:

<!DOCTYPE html>
<html>
<head>
    <title>Framed Page</title>
</head>
<body style="background-color: lightcoral;">
<h2>This is the framed site</h2>

<div border="0" class="cookie_button" id="continue_button" onclick="SetCookie('cookieAcceptanceCookie','accepted',9999);">accept</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的问题有解决办法吗?

Sup*_*Roy 4

对我有用的唯一解决方法是通过 iframed 域重定向一次。

因此,如果您有 abc.com,并且 xyz.com 是 abc.com 下的 iframe,则在登陆 abc.com 时,需要通过 xyz.com 进行中间重定向,仅用于设置空白 cookie。然后 Safari 将允许从 iframe 为 xyz.com 设置 cookie。

我不确定是否还有其他更好的解决方法。然而,这有效并达到了我的目的。

谢谢。