Javascript IE 6、7和8中缺少cookie

Javascript IE 6、7和8中缺少cookie,javascript,internet-explorer,http,cookies,Javascript,Internet Explorer,Http,Cookies,我正在向浏览器发送2个cookie。一个是1年内到期的浏览器标识符,另一个是没有到期的会话跟踪器。新请求的响应头如下所示 HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 X-XSS-Protection: 0 ETag: "b502a27282a5c621f34d522c3fcc8e3e" Set-Cookie: bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3NlchimigcM; expires

我正在向浏览器发送2个cookie。一个是1年内到期的浏览器标识符,另一个是没有到期的会话跟踪器。新请求的响应头如下所示

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
X-XSS-Protection: 0
ETag: "b502a27282a5c621f34d522c3fcc8e3e"
Set-Cookie: bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3NlchimigcM; expires=Fri, 12-Aug-2011 05:21:55 GMT; Path=/
Set-Cookie: rid=1281569589; Path=/about
Expires: Wed, 11 Aug 2010 23:33:09 GMT
Cache-Control: private, max-age=345600
Date: Wed, 11 Aug 2010 23:33:09 GMT
我正在尝试从页面上的JavaScript访问这两个cookie

在Firefox和Chrome文档中,cookie给了我这个

"rid=1281568223; bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM"
"bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM"
在IE6、IE7、IE8中,document.cookie只给了我这个

"rid=1281568223; bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM"
"bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM"

我的rid cookie中的“path”属性是否与IE无关,还是缺少了过期日期(我认为这应该是可选的)?我假设我设置的cookie不超过1个,因为这一直都在进行。

我对IE也有类似的问题。我设置了三个没有路径的cookie(因此假设为“/”)。我正在自己的机器上的开发环境中运行。当我以身份打开页面时,我得到了预期的结果,我的javascript可以找到cookies,但是,如果我加载的页面与我可以看到(在调试器中)添加到响应中的三个cookies相同,但是当我使用javascript函数查找它们时,我的所有cookies都为空。不用说,这在FireFox上可以正常工作。

IE只允许您在子目录中访问这些cookie!因此,如果您将cookie的路径设置为/about,而您的页面实际上是/about,那么您将无法访问它


因此,对于IE来说,您似乎可以在/about like/about/us下面的页面上访问cookie,但不能在/about本身的页面上访问cookie。试想一下:我想亚历克西斯和瑞希已经找到了这个位置。这是我在网上找到的唯一一个关于IE如何使用路径处理cookies的信息。多痛的球啊!他又罢工了


顺便说一句,至少在IE 11中,它在完整路径上执行“start with”比较,因此可以在“/about”页面上访问设置路径为“/abou”的cookie。虽然在我当前的项目中,这并不能让我感到安慰,因为我不能假设从路径的末尾去掉一个字符可以可靠地识别站点中的唯一路径。

在将“path”属性设置回“/”之后,我能够读取“rid”cookie。然而,这不是我真正想要的解决方案。IE不支持cookie的“path”属性吗?您在以/about开头的URL上看到这种行为了吗?路径告诉浏览器cookie仅应用于页面/about或其下的页面,如/about/us。当您更改/的路径时,cookie将应用于站点上的所有页面。我正在使用的JavaScript(document.cookie)位于www.example.com/about页面上。我还使用“path”属性将cookie发送到其他页面,在IE浏览器上也会得到相同的结果。这可能是缓存问题吗?