一尘不染

在Safari中设置跨域Cookie

javascript

我必须从域B.com调用域A.com(使用http设置cookie)。我在B.com域上所做的就是(javascript):

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "A.com/setCookie?cache=1231213123";
head.appendChild(script);

这将在我测试过的所有浏览器(Safari除外)上在A.com上设置Cookie。令人惊讶的是,即使没有P3P标头,它也可以在IE6中使用。

有什么办法可以使它在Safari中工作吗?


阅读 820

收藏
2020-05-01

共1个答案

一尘不染

来自Safari Developer FAQ

Safari附带了一种保守的cookie策略,该策略将cookie写入限制为仅用户选择的页面(“导航到”)。此默认的保守策略可能会使尝试编写cookie并失败的基于框架的站点混乱。

我没有办法解决这个问题。

如果值钱,如果您使用<script>附加方法,Chrome也不会设置cookie
,但是如果您<img使用相同的来源隐藏了>,则Chrome会与其他浏览器一起使用(再次是Safari)

2020-05-01