2016-03-18 6 views
6

मैं एक html पृष्ठ से एक WebSocket हाथ मिलाना अनुरोध भेजने के लिए चाहता था और नीचे की तरह कोड लिखा है:मैं वेबसाइकिल हैंडशेक अनुरोध हेडर में कुकी मान क्यों नहीं देख सकता हूं?

document.cookie = "guestId=xxxx; remember=xxxxxx;"; 
    var ws = new WebSocket("ws://localhost:5000/ws"); 

लेकिन क्या Chrome डेवलपर टूल में दिखाया गया प्रतीत होता है कि कोई भी कुकी भेजा गया था:

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 

कैसे कर सकते हैं मैं इसे ठीक करता हूँ? अनुरोध हेडर में कोई कुकी क्यों नहीं है? अगर मैं अन्य AJAX अनुरोध को अपग्रेड नहीं करता हूं, तो मैं देव टूल्स में कुकीज़ देख सकता हूं। ऐसे मतभेद क्यों हैं?

उत्तर

0

आप कोशिश कर सकते हैं

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

आपका उत्पत्ति हैडर है http: // localhost: 63,342 और WS अनुरोध ws है: // स्थानीय होस्ट: 5000/ws तो अपने डोमेन हैं अलग (विभिन्न बंदरगाहों)। मुझे लगता है कि आपके अन्य AJAX अनुरोध http: // localhost: 63342 हैं और इस प्रकार ब्राउज़र कुकी भेजता है।

संबंधित मुद्दे