当前位置:  开发笔记 > 编程语言 > 正文

在Safari中设置跨域cookie

如何解决《在Safari中设置跨域cookie》经验,为你挑选了3个好方法。

Evernote的书签能够做到这一点,因此即使赏金将以非生产性的方式进行,最受欢迎的答案也不会回答这个问题.

我必须从域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);

这会在我测试的每个浏览器上设置A.com上的cookie,但Safari除外.令人惊讶的是,即使没有P3P标头,这也适用于IE6.

有没有办法在Safari中使这项工作?



1> Paolo Bergan..:

来自Safari Developer FAQ:

Safari附带了保守的cookie策略,该策略将cookie写入仅限于用户选择("导航到")的页面.此默认保守策略可能会混淆尝试写入cookie并失败的基于帧的站点.

我发现无法解决这个问题.

如果它有价值,Chrome也不会设置Cookie,如果您使用>追加方法,但如果您有隐藏>具有相同来源,Chrome除了其他浏览器外还可以使用(除了Safari之外)


它被投了票,因为它是正确的答案,如果没有完整页面重定向到第三方域,您无法在Safari中执行所请求的操作.

2> Alec Smart..:

这是一个有效的解决方案:

http://anantgarg.com/2010/02/18/cross-domain-cookies-in-safari/


@streetlight - 你是对的,该博客文章的作者在此确认这不再有效:http://anantgarg.com/2010/02/18/cross-domain-cookies-in-safari/#comment-924880962
我的印象是,在整个'谷歌入侵Safari for ads'之后,这个漏洞已经在Webkit中被关闭了
它确实有效,但你不能通过javascript创建cookie,它必须由服务器在表单的响应上创建.+1

3> MKN Web Solu..:

工作方法2014-2016:

你必须做window.open到域/分配cookie /关闭弹出窗口,域现在已经安全.

原帖@ PHP多个cookie无法在iPad/iPhone浏览器上运行

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有