2017-04-05 19 views
0

kerberos認証を使用してwebsocketをサーバーに開こうとしていますが、ハンドシェイク中にエラーが発生しました(エラーコード:400)。 ウェブソケットを通して資格情報を送ることができないことがわかりました。私がしなければならないことは、ウェブソケットクッキーによってユーザー名とパスワードを設定し、サーバーがそれらを読み取ることです。 ウェブソケットのCookieを設定するにはどうしたらいいですか? ありがとう、webSocket javascriptのCookieヘッダーを設定するにはどうすればよいですか?

答えて

0

document.cookie = xxxxと同じ方法で、webSocket接続のCookieを設定できます。すべてのwebSocket接続はHTTPリクエスト(アップグレードヘッダー付き)で始まり、接続先のドメインのCookieはwebSocketを開くための最初のHTTPリクエストとともに送信されます。

ウェブページと同じドメインにwebSocket接続を行っている限り、そのウェブページのクッキーを設定するだけでwebSocket接続要求とともに送信されます。他のクッキーと同様に、document.cookieを使用してクッキーを設定します(here on MDN)。

+0

document.cookieを使用してCookieを追加しようとしていますが、Cookieはhttpリクエストで送信されますが、Webソケット(wss:// ...)を開こうとするとリクエストヘッダーにCookieが表示されません.. @ jfriend00 –

+0

@ibrahimnoureddine - webSocketをウェブページと同じプロトコル、ドメイン、ポートに接続していますか?それはdocument.cookieのクッキーが送られる唯一の場所です。 Cookieを設定しwebSocketを接続するためのコードを見て、さらに助言するためにURLとページとwebSocketの両方の接続を確認する必要があります。コードなしの質問は私たちがデバッグするのが難しいです。 – jfriend00

+0

httpリクエスト: var xurl = "htttps://サーバー名/ piwebapi/streamsets /" + elementwebid + "/ value"; GetJsonContent(xurl、(関数(サブエレメント))... のWebSocket要求: tempstring = 'WSS://' +サーバー名+ '?/ piwebapi/streamsets /チャンネル'; jfriend00 –

関連する問題