Javascript Can';t连接到websocket服务器

Javascript Can';t连接到websocket服务器,javascript,node.js,websocket,Javascript,Node.js,Websocket,我是前端websocket的新手。这个问题可能很愚蠢:) 下面的html文件是用来试用websocket的。如果从后端web服务呈现此页面,则可以成功建立连接。但如果使用浏览器从磁盘打开此文件,则无法建立连接 <!-- websockets.html --> <input id="input" type="text" /> <button onclick="send()">Send</button> <pre id="output">&

我是前端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>

发送
var输入=document.getElementById(“输入”);
var output=document.getElementById(“输出”);
var socket=newwebsocket(“ws://localhost:8081/echo”);
socket.onopen=函数(){
output.innerHTML+=“状态:已连接\n”;
};
socket.onmessage=函数(e){
output.innerHTML+=“服务器:”+e.data+“\n”;
};
函数send(){
socket.send(输入值);
input.value=“”;
}

此问题的根本原因是原产地检查。如果从本地文件系统打开文件,则源文件将与服务端不同。如果在服务器端禁用checkOrigin,则可以建立websocket连接