2017-04-05 1141 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 –