7

我遇到了一个奇怪的问题,即 Internet Explorer 不接受我的 cookie。这是饼干:

set-cookie: USUSERNAME=LrceSVu6mUJ9Ztmvp4oKSQ%3D%3D; version="1"; expires=Mon, 15-Jun-2009 11:42:21 GMT; path=/; domain=.us.is

它不会为域 dev-intranet.us.is 或任何其他 us.is 域存储。但是,将 cookie 的域设置为我的开发机器 ip 地址非常有效:

set-cookie: USUSERNAME=LrceSVu6mUJ9Ztmvp4oKSQ%3D%3D; version="1"; expires=Mon, 15-Jun-2009 08:41:58 GMT; path=/; domain=192.168.34.104

在 Firefox、Opera、Safari 和 Chrome 中一切正常,但在 IE7 中没有

有什么想法吗?

顺便提一句。使用 WebObjects WOCookie 创建 cookie。

4

2 回答 2

9

您示例中的 cookie 用于“us.is”域。IE 忽略为两个字母域设置的 cookie。更准确地说,它似乎忽略了来自少于 5 个字符的域的 cookie(比如你的:2+2)。

我记得我相信来自 IE6 的这个错误/功能,可能是早期版本。阅读本文,看起来这种行为仍然存在于 IE7 中。

可以在此处找到建议不切实际的解决方法的 MSKB 文章:http: //support.microsoft.com/kb/310676

更实际的可能是获得一个更长的域名;-) 或者确保用户总是被重定向到一个规范的名称,即“www.us.is”并在那里放置您的 cookie。

于 2009-06-23T14:44:54.313 回答
6

一些额外的边缘案例/细节(在 IE8 中使用 Per Site Privacy Actions [Internet Options > Privacy > Sites] 完成的测试):

以下域被拒绝

  a.a
 aa.a
  a.aa
 aa.aa

带有错误消息:

You have entered an invalid domain. Domains must be in the Internet zone
and must use the HTTP or HTTPS protocol. URLs beginning with xn-- must
be valid IDN names.

Examples of valid domains:

  - www.treyresearch.net
  - http://treyresearch.net
  - fineartschool.net

接受以下域:

aaa.a
aaa.aa
  a.aaa
 aa.aaa

   a.a.a
  a.a.aa
 a.aa.aa
aa.aa.aa

此外,在很大程度上不相关,Internet Explorer 似乎拒绝接受包含域规范中不允许的字符的域。如果(大概是在开发环境中),你有一个无效的域,IE 不喜欢它。

以下域被拒绝

a_a.aa
a%a.aa
a*a.aa
a=a.aa

带有错误消息:The site name you entered is not a valid IDN URL

测试似乎仅限于字符有效性而不是安排有效性,因为以下域是ACCEPTED

aa-.aa
aa.aaa.
---.aa
-.---
---.-

希望这可以帮助人们寻找在 IE7 / IE8 中在一种环境与另一种环境中未正确设置 cookie 的详细信息。

于 2011-09-06T04:29:13.473 回答