为什么有些cookie无法从document.cookie获得?

时间:2018-07-26 05:15:32

标签: javascript

我正在使用document.cookie来获取网站的cookie值,但无法获取所有cookie值。 示例会话cookie sid,我可以在Google Chrome Cookie Manager中看到它,但无法通过javascript获取价值。

如何通过javascript设置cookie,但它不会显示在document.cookie中(仍然将这些值发送到请求标头中的服务器)?

2 个答案:

答案 0 :(得分:1)

从github复制的答案:https://github.com/expressjs/session/issues/274#issuecomment-185308426

  

您的cookie可能设置为httponly:true。这是默认值。如果您或其他未读过此内容的人不知道,则可能没有必要,并且将此值设置为false的错误决定。   搜索“ httponly cookie”,您会找到一些很好的解释,说明为什么您不希望Javascript访问Cookie。

答案 1 :(得分:0)

还请确保您尝试访问的cookie在您尝试访问cookie的文档范围内。

  

Domain和Path指令定义了cookie的范围:应将cookie发送到哪些URL。

     

域指定允许主机接收cookie。如果未指定,则默认为当前文档位置的主机,不包括子域。如果指定了域,则始终包含子域。

     

例如,如果设置了Domain = mozilla.org,则cookie被包含在子域中,例如developer.mozilla.org。

     

Path表示在URL中必须存在的URL路径才能发送Cookie标头。 %x2F(“ /”)字符被视为目录分隔符,子目录也将匹配。

     

例如,如果设置了Path = / docs,则这些路径将匹配:

     

/ docs

     

/ docs / Web /

     

/ docs / Web / HTTP

来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Scope_of_cookies