Internet Explorer忽略我的cookie

Atl*_*son 7 cookies internet-explorer webobjects http

我有一个奇怪的问题,Internet Explorer不接受我的cookie.这是cookie:

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

它不会存储在域dev-intranet.us.is或任何其他us.is域中.但是,将cookie的域设置为我的dev机器IP地址可以完美地运行:

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

一切都在Firefox,Opera,Safari和Chrome中有所体现,但不是IE7

有什么想法在这里发生?

顺便说一句.使用WebObjects WOCookie创建cookie.

con*_*nny 9

您示例中的Cookie适用于"us.is"域.IE忽略为双字母域设置的cookie.更确切地说,它似乎忽略来自少于5个字符的域的cookie(如你的:2 + 2).

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

可以在此处找到一篇MSKB文章,其中提供了一个不切实际的解决方法:http://support.microsoft.com/kb/310676.

更实际的可能是获得更长的域名;-)或确保用户始终被重定向到一个规范名称,即"www.us.is"并在那里种植您的cookie.


eby*_*num 6

一些额外的边缘情况/细节(在IE8中使用每个站点的隐私措施[Internet选项>隐私>站点]进行的测试):

以下域名被拒绝:

  a.a
 aa.a
  a.aa
 aa.aa
Run Code Online (Sandbox Code Playgroud)

带有错误消息:

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
Run Code Online (Sandbox Code Playgroud)

接受以下域名:

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

   a.a.a
  a.a.aa
 a.aa.aa
aa.aa.aa
Run Code Online (Sandbox Code Playgroud)

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

以下域名被拒绝:

a_a.aa
a%a.aa
a*a.aa
a=a.aa
Run Code Online (Sandbox Code Playgroud)

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

测试似乎仅限于字符有效性而不是安排有效性,因为以下域名是接受的:

aa-.aa
aa.aaa.
---.aa
-.---
---.-
Run Code Online (Sandbox Code Playgroud)

希望这有助于人们在IE7/IE8中在一个环境与另一个环境中查找为什么没有正确设置cookie的详细信息.