我是前端上websocket的新手。这个问题可能很愚蠢:) 以下html文件用于试用websocket。如果从后端Web服务呈现此页面,则可以成功建立连接。但是,如果使用浏览器从磁盘打开此文件,则无法建立连接。
<!-- websockets.html -->
<input id="input" type="text" />
<button onclick="send()">Send</button>
<pre id="output"></pre>
<script>
var input = document.getElementById("input");
var output = document.getElementById("output");
var socket = new WebSocket("ws://localhost:8081/echo");
socket.onopen = function () {
output.innerHTML += "Status: Connected\n";
};
socket.onmessage = function (e) {
output.innerHTML += "Server: " + e.data + "\n";
};
function send() {
socket.send(input.value);
input.value = "";
}
</script>
答案 0 :(得分:0)
此问题的根本原因是来源检查。如果从本地文件系统打开文件,则源将与服务端不同。如果在服务器端禁用checkOrigin,则可以建立websocket连接。