Safari 不接受 Cookie 而 FF 和 IE 接受

Posted

技术标签:

【中文标题】Safari 不接受 Cookie 而 FF 和 IE 接受【英文标题】:Safari not accepting Cookies while FF and IE does 【发布时间】:2011-03-21 22:11:11 【问题描述】:

我的 Safari 浏览器和我们的 set-cookie 有问题。 Safari 完全忽略了我们设置的 cookie,而 FF 和 IE 接受并发送 cookie。 Cookie设置页面不是重定向,直接HTTP 200 with set-cookie。

是否存在导致 Safari 完全忽略 cookie 的特殊字符或格式错误的 set-cookie?

发送以下 Cookie:

CURL 输出:

设置 Cookie:ASP.NET_SessionId=rdmpn1b4eckozzjns0voon33;路径=/

设置-Cookie:SHOPPERID=jZlotLr6HESiqoB/3F0brg==; expires=2060 年 7 月 28 日星期三 01:09:04 GMT;路径=/

设置-Cookie:FVISIT=2010?N7??28??;到期=格林威治标准时间 2060 年 7 月 28 日星期三 01:09:04;路径=/

设置-Cookie:STOCKMCD=Direct=2010/07/28 10:09:04;过期=星期二,2010 年 10 月 26 日 01:09:04 GMT;路径=/

Safari 开发者工具:

设置 Cookie:ASP.NET_SessionId=xqf3eui1r2fce4e30ogh2145;路径=/, SHOPPERID=C/lG3XGVPEa7QgGcsqt3yg==;到期=格林威治标准时间 2060 年 7 月 28 日星期三 01:15:26;路径=/,FVISIT=2010N728ú;到期=格林威治标准时间 2060 年 7 月 28 日星期三 01:15:26;路径=/,STOCKMCD=直接=2010/07/28 10:15:26;到期=星期二,2010 年 10 月 26 日 01:15:26 GMT;路径=/

【问题讨论】:

【参考方案1】:

查看HTTP headers encoding/decoding in Java 的答案。看起来好像正在发送的 Set-Cookie 标头包含一个没有有效编码的字符。看来 IE 和 Firefox 不如 Safari 严格。

【讨论】:

【参考方案2】:

使用默认隐私设置,Safari 会拒绝来自用户访问之外的域的 cookie。例如,如果 example.com 的页面包含来自 example.net 的资源,则 example.net 不允许设置 cookie。

【讨论】:

以上是关于Safari 不接受 Cookie 而 FF 和 IE 接受的主要内容,如果未能解决你的问题,请参考以下文章

$_COOKIE 在 Safari iOS 中不起作用

Check Point SSL Network Extender 适用于 FF,而非 Safari,适用于 Mountain Lion

WebRTC connectionState 停留在“new” - 仅适用于 Safari,适用于 Chrome 和 FF

移动 Safari 视差滚动不起作用

cookie是啥文件?可以清理么?

jQuery Ajax 在 IE 6/7/8 中不工作,在 FF/Safari/Chrome 中工作