2010-08-11 50 views
0

我向浏览器发送2个cookie。一个是浏览器标识符,在一年内到期,另一个是没有到期的会话跟踪器。新的请求的响应标题看起来像这样IE 6,7和8中缺少cookie

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的document.cookie给了我这个

"rid=1281568223; bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM" 

在IE6,IE7,IE8的document.cookie只给了我这个

"bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM" 

是我摆脱 '路径' 属性抛弃IE浏览器的cookie还是失效的失效日期(我认为它应该是可选的)?我认为这不是事实,我设置了超过1个cookie,因为这是一直做的。

+0

将'path'属性设置回'/'后,我能够读取'rid'cookie。然而,这不是我真正想要的解决方案。 IE不支持cookie的'路径'属性吗? – 2010-08-12 06:53:54

+0

您是否在以/ about开头的URL上看到此行为?该路径告诉浏览器该cookie仅适用于页面/ about或其下的页面,如/ about/us。当您将路径更改为/该Cookie适用于网站上的所有页面时。 – Kwebble 2010-08-12 15:41:51

+0

我正在使用的JavaScript(document.cookie)位于www.example.com/about页面上。我还使用'路径'属性向其他页面发送cookie,在IE浏览器上的结果相同。这可能是一个缓存问题? – 2010-08-12 17:20:28

回答

-1

我也有类似的问题与IE浏览器。我设置了三个没有路径的cookie(所以假设为“/”)。我在自己的机器上开着一个开发环境。当我打开页面为http://localhost/page.aspx时,我得到了预期的结果,并且我的javascript可以找到cookie,但是,如果我加载了与http://mymachine.mydomain.com/page.aspx相同的页面,我可以观察(在调试器中)同样的三个cookie被添加到响应中,但当我到达寻找它们的javascript函数时,我所有的cookie都是空的。不用说,这在FireFox上可以正常工作。

3

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

这么看来IE浏览器,你可以在页面上访问该cookie下/左右喜欢/ /我们而不是一个网页,是/约本身。去图:/

0

亚历克西斯和里士我觉得有这个地方。这是网络上唯一的地方我已经找到了关于IE如何使用路径处理cookie的信息。什么球疼! IE再次袭击。

顺便说一句,至少在IE 11中,它会在完整路径上执行“开始”比较,因此可以在'/ about'页面上访问设置路径为'/ abou'的cookie。虽然在我目前的项目中,但这并不令人感到安慰,因为我无法做出这样的假设,即从路径的末端取走一个字符将可靠地识别站点中的唯一路径。