iframe中的Safari和Cookie

时间:2018-07-17 10:00:19

标签: javascript cookies

Safari浏览器默认情况下会阻止第三方Cookie。

我有网站A(主网站),该网站在iframe中加载了网站B(框架网站)。站点B设置了一些cookie(当用户单击按钮时),以使其正常运行。这些Cookie称为“第三方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>

我的问题有解决方案吗?

2 个答案:

答案 0 :(得分:2)

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

因此,如果您拥有abc.com,而xyz.com是abc.com下的iframe,则在登陆至abc.com时,仅出于设置空白的目的,就需要通过xyz.com进行中间重定向曲奇饼。然后Safari允许从iframe为xyz.com设置Cookie。

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

谢谢。

答案 1 :(得分:1)

Safari现在会阻止所有第三方cookie。您只能使用Storage API尝试让用户访问其第三方Cookie。

https://www.infoq.com/news/2020/04/safari-third-party-cookies-block/