Javascript 为什么可以';我在WebSocket握手请求头中看不到cookie值吗?

Javascript 为什么可以';我在WebSocket握手请求头中看不到cookie值吗?,javascript,cookies,websocket,Javascript,Cookies,Websocket,我想从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

我想从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请求,我可以在开发工具中看到cookies。为什么会有这样的差异?

你可以试试

ws.on("headers", function(headers) {
    headers["set-cookie"] = "yokokkie";
});

您的来源标题为http://localhost:63342而WS请求是到WS://localhost:5000/WS,因此您的域是不同的(不同的端口)。我想您的其他ajax请求是http://localhost:63342这样浏览器就会发送cookie