对于 websockets,我必须从 cookie 中公开我的 sessionid。
我搜索了一下,发现我应该能够通过以下方式访问 cookie:
console.log(document.cookie);
不幸的是,这不起作用或更好的 document.cookie 包含一个空字符串,即使 chrome 本身也向我显示 cookie 也可以进行身份验证。
难道是chrome隐藏了javascript的cookie吗?
对于 websockets,我必须从 cookie 中公开我的 sessionid。
我搜索了一下,发现我应该能够通过以下方式访问 cookie:
console.log(document.cookie);
不幸的是,这不起作用或更好的 document.cookie 包含一个空字符串,即使 chrome 本身也向我显示 cookie 也可以进行身份验证。
难道是chrome隐藏了javascript的cookie吗?
如果服务器被配置为发送带有标志的会话 cookie ,HttpOnly
就会发生这种情况。这样,cookie 就变得对 JS 等客户端脚本语言不可见/不可访问。
为了实现您的具体功能要求,要么重新配置服务器不这样做,要么寻找替代方法,例如设置自定义 cookie(HttpOnly
当然没有标志),或者让服务器端视图技术动态打印当前会话 ID 为JS 变量或作为某些 HTML 元素的属性,以便 JS 可以通过遍历 HTML DOM 来访问它。