为什么我在 WebSocket 握手请求标头中看不到 cookie 值
Why can't I see cookie value in a WebSocket handshake request header?
我想从 html 页面发送一个 websocket 握手请求,并编写了如下代码:
document.cookie = "guestId=xxxx; remember=xxxxxx;";
var ws = new WebSocket("ws://localhost:5000/ws");
但是Chrome Dev Tools中显示的内容似乎没有发送cookie:
General:
Request URL:ws://localhost:5000/ws
Request Method:GET
Status Code:307 Temporary Redirect
Response Headers
Content-Length:59
Content-Type:text/html; charset=utf-8
Date:Fri, 18 Mar 2016 09:39:11 GMT
Location:/preorder/landing/index
Request Headers
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4
Cache-Control:no-cache
Connection:Upgrade
Host:localhost:5000
Origin:http://localhost:63342
Pragma:no-cache
Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
Sec-WebSocket-Key:t3N0vVaLCsOmOXLSh+Arsw==
Sec-WebSocket-Version:13
Upgrade:websocket
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36
我该如何解决这个问题?为什么请求标头中没有 cookie?如果我发送其他未升级的 ajax 请求,我可以在开发工具中看到 cookie。为什么会有这样的差异?
您的 Origin 标头是 http://localhost:63342 的,WS 请求是 ws://localhost:5000/ws,因此您的域是不同的(不同的端口)。我想您的其他 ajax 请求是 http://localhost:63342,因此浏览器发送 cookie。
你可以
试试
ws.on("headers", function(headers) {
headers["set-cookie"] = "yokokkie";
});
相关文章:
- 为什么我在Internet Explorer上看不到html元素
- ajax请求成功,但可以'我看不到我的数据
- 使用jQuery for RSS看不到多个帖子
- 执行此代码时,我看不到警告框
- Javascript 方法看不到对象变量
- 看不到变量
- Phantomjs 看不到 Twitter/Facebook 授权页面
- AS3 XML上的翻页在IE和FIREFOX上看不到
- JavaScript 看不到声明的变量
- 看不到函数外的Javascript变量
- Javascript对象看不到内部函数
- 为什么我的firefox扩展javascript不能访问opener窗口,也看不到window.name
- 从Node.js查询Neo4j时看不到任何回调
- I'我在css中做了一些隐藏的东西,我可以'I don’我现在点击按钮时看不到它
- 我看不到Javascript数组中的图像
- 硒 IDE 1.8.1 警报框:运行测试时看不到警报框
- 在网格PhongMaterial地面和聚光灯上看不到任何带有Colada模型的阴影
- 我正在通过 javascript 向表添加行,但是当我提交页面时,C# 看不到添加的行
- 为什么我在 WebSocket 握手请求标头中看不到 cookie 值
- 为什么 Chrome 和 Safari 看不到某些子域的 Cookie