2017-04-05 67 views
0

我想打開websocket到kerberos認證的服務器,在握手過程中發生錯誤(錯誤代碼:400); 我看到無法通過網絡套接字發送憑證,我必須做的是通過網絡套接字cookie設置用戶名和密碼,服務器將讀取它們。 那麼我如何設置網絡套接字餅乾? 謝謝,如何爲webSocket javascript設置cookie標頭?

回答

0

您可以像設置普通cookie一樣設置cookie的webSocket連接,使用document.cookie = xxxx。所有webSocket連接都以HTTP請求(帶有升級標頭)開始,並且您要連接的域的cookie將與該初始HTTP請求一起發送以打開webSocket。

所以,只要你正在和web頁面做同一個域的webSocket連接,那麼你就可以爲該web頁面設置一個cookie,並且它將和webSocket連接請求一起發送。而且,與其他Cookie一樣,您使用document.cookie來設置cookie,如here on MDN所述。

+0

我想添加cookie使用document.cookie,cookie發送在http請求中,但是當試圖打開web套接字(wss:// ...)我看不到請求標頭中的cookie .. @ jfriend00 –

+0

@ibrahimnoureddine - 你是否將webSocket連接到與網頁相同的協議,域和端口?這是來自document.cookie的cookies將被髮送到的唯一地方。我們可能需要查看您的代碼以設置Cookie並連接您的webSocket,並查看該頁面和webSocket連接的URL以進一步提供建議。沒有代碼的問題對我們來說很難調試。 – jfriend00

+0

http請求: var xurl =「htttps:// servername/piwebapi/streamsets /」+ elementwebid +「/ value」; GetJsonContent(xurl,(函數(subElements屬性)).... WebSocket的請求: tempstring = 'WSS://' +服務器名+ '?/ piwebapi/streamsets /信道'; @ jfriend00 –