我希望能够从一个html页面发送一个websocket握手请求,我写的代码如下:
但是在Chrome开发工具中显示,没有发送任何cookie:
document.cookie = "guestId=xxxx; remember=xxxxxx;";
var ws = new WebSocket("ws://localhost:5000/ws");
但是在Chrome开发工具中显示,没有发送任何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。为什么会有这样的差异?
document.cookie
是否无效,因为websocket库的工作方式可能需要显式地发送cookie头部。也许我应该发表两个答案:D - Michael