2017-11-22 12 views
0

jqueryを使用してWebSocketハンドシェイクリクエストを作成しています。ここで私はまたheadersセクション内のヘッダーを設定しようとしたコードAjax Jquery Websocketハンドシェークリクエストヘッダー - 安全でないヘッダーを設定することを拒否しました

$.ajax({ 
     url: 'http://'+ document.location.host + '/handshake', 
     type: 'GET', 
     dataType: 'json', 
     headers: { 
     }, 
     beforeSend: function (xhr) { 
     xhr.setRequestHeader('Upgrade', 'websocket'); 
     xhr.setRequestHeader('Connection', 'Upgrade'); 
     xhr.setRequestHeader('Sec-WebSocket-Key', 'dGhlIHNhbXBsZSBub25jZQ=='); 
     xhr.setRequestHeader('Sec-WebSocket-Version', '13'); 
     }, 
     success: function (result) { 
     // CallBack(result); 
     }, 
     error: function (error) { 

     } 
    }); 

ですが、私はまだ、以下のエラーを取得し、ヘッダは、ハンドシェイク要求に設定されていません。

enter image description here

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers

は、ハンドシェイクは、クライアント(ブラウザ)

答えて

0

AJAX post error : Refused to set unsafe header "Connection"が関係しているように思わせていることは非常に最初の要求であることを述べています。

私はあなたがのWebSocketハンドシェイクが要求をアップグレードしたい場合、あなたは(それが暗黙のうちにヘッダを設定し、リクエストを送信する)必要なものを行うためにJavaScriptにWebSocketオブジェクトのネイティブを使用することができると信じて:

var webSocket = new WebSocket('ws://localhost:8080/yourURL'); 

    webSocket.onerror = function(event) { 
     //Handle the error event, ('error' in your code) 
    }; 

    webSocket.onopen = function(event) { 
     //Handle what happens when the connection is made ('success' in your code) 
    }; 

    webSocket.onmessage = function(event) { 
     //What do do on each message 
    }; 

であなたのコードでは、単にそれらのヘッダに触れることは許されません。

関連する問題