jQuery $ .cookie没有读取服务器响应设置的cookie

时间:2012-05-27 23:02:16

标签: jquery jquery-cookie

$ .cookie不读取之前由服务器响应设置的cookie。

我可以阅读使用$ .cookie()设置的Cookie。

我可以看到所有使用Firefox的Web Developer设置的域cookie 此外,服务器端可以看到请求cookie,因此浏览器肯定有它们。

我已经尝试过期时间但没有用。

2 个答案:

答案 0 :(得分:7)

问题是服务器端正在发送带有HttpOnly设置的cookie,如下所述:http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

以这种方式发送的Cookie无法通过document.cookie访问。这通常用于帮助保护cookie值免受您网站上可能的XSS攻击。

编辑:您没有提到您在服务器端使用哪种技术来设置Cookie。如果你正在使用PHP,这个链接列出了可以设置HttpOnly标志的可能方式:

https://www.owasp.org/index.php/HttpOnly#Using_PHP_to_set_HttpOnly

答案 1 :(得分:1)

更新:我的原始答案错误(见下文)...路径树下方的页面可以读取上层cookie,因此路径不必完全匹配。留下我的原始答案,以防其他人犯同样的错误。我的问题是由我从javascript设置cookie,然后尝试修改cookie服务器端引起的。使用路径“/”的服务器目标cookie,因此路径为“/ mypages”的cookie未更改。

  

$ .cookie只能读取当前文档路径下的cookie,因此如果您的页面是> mysite.com/mypages/mypage.aspx,服务器会在设置cookie时将路径设置为“/”,>但$ .cookie将尝试从路径“/ mypages”读取并且无法读取cookie。我自己就跑了>问题。如果您没有这样的不同路径,那么这可能不是您的问题。