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