gpt4 book ai didi

javascript - 在请求 Cookie header 中发送的子域 cookie,但不存在于 IE JavaScript 的 document.cookie 中

转载 作者:数据小太阳 更新时间:2023-10-29 06:09:02 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,cookie 可以正确发送和接收,但 Internet Explorer 上的 JavaScript 无法访问。 Chrome、Firefox、Opera 和 Safari JavaScript 都可以。

  1. 发布到“http://wp.abc.example.com/content/sv2.cgi?id=1234”,响应设置 cookie,发出 302 重定向:

    HTTP/1.0 302 Moved Temporarily
    Location: http://members.abc.example.com/abc/members/0912/07/news01.html
    Set-Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
    Set-Cookie: LEADENDDATE=20091218; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
  2. 浏览器请求目标页面,包括刚刚发送的cookie。

    GET /abc/members/0912/07/news01.html HTTP/1.1
    Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; LEADENDDATE=20091218;
    Host: members.abc.example.com
  3. 运行“javascript:alert(document.cookie);”在浏览器地址栏中。

  4. 在 IE 上,并且仅在 IE 上,cookie 不存在。其他浏览器没问题。这适用于 IE6、7 和 8。

总而言之,

“wp.abc.example.com”在“abc.example.com”上设置了一个 cookie,它在“members.abc.example.com”的请求中被发送到服务器,但对 JavaScript 不可见那个页面。

为什么?

我想也许应该在“.abc.example.com”上设置 cookie 而不是“abc.example.com”以允许子域匹配,但即便如此它还是在“members.abc.example.com”中发送"请求头。

基本上它就像在 cookie 上设置了“HttpOnly”一样,即使从上面显示的 Set-Cookie header 示例来看,该标志不包括在内。额外的“;”有没有什么效果?

最佳答案

Eric Law 写了 a good article on IE's various cookie-handling quirks一会儿回来。他回答的其中一个问题似乎适用于您的情况:

Q8: Are there any limits to the HTML DOM document.cookie property?

A: [...]

Also, due to an obscure bug in the underlying WinINET InternetGetCookie implementation, IE’s document.cookie will not return a cookie if it was set with a path attribute containing a filename.
[...]

请注意,您的路径确实包含文件名:

Set-Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
Set-Cookie: LEADENDDATE=20091218; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;

我建议您尝试使用无文件名路径设置 cookie,看看是否有帮助...

关于javascript - 在请求 Cookie header 中发送的子域 cookie,但不存在于 IE JavaScript 的 document.cookie 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1927368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com