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>
我的问题有解决方案吗?
答案 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/