3

对于 websockets,我必须从 cookie 中公开我的 sessionid。

我搜索了一下,发现我应该能够通过以下方式访问 cookie:

console.log(document.cookie);

不幸的是,这不起作用或更好的 document.cookie 包含一个空字符串,即使 chrome 本身也向我显示 cookie 也可以进行身份​​验证。

难道是chrome隐藏了javascript的cookie吗?

4

1 回答 1

6

如果服务器被配置为发送带有标志的会话 cookie HttpOnly就会发生这种情况。这样,cookie 就变得对 JS 等客户端脚本语言不可见/不可访问。

为了实现您的具体功能要求,要么重新配置服务器不这样做,要么寻找替代方法,例如设置自定义 cookie(HttpOnly当然没有标志),或者让服务器端视图技术动态打印当前会话 ID 为JS 变量或作为某些 HTML 元素的属性,以便 JS 可以通过遍历 HTML DOM 来访问它。

于 2012-08-12T17:59:55.613 回答