我試圖用本地客戶端測試一個簡單的socket.io示例。這裏是我的代碼:帶本地客戶端的Socket.io。 Origin null和Access-Control-Allow-Origin
服務器:
var sio = require('socket.io');
var io = sio.listen(8077, {log: false});
io.sockets.on('connection', function (socket) {
console.log('connection detected');
socket.on('hello', function(data){
console.log('hello received: ' + data);
});
});
客戶端:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="socket.io-client/dist/socket.io.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var socket = io.connect('http://localhost:8077');
if(socket != undefined){
socket.emit('hello', 'this is a test');
}
</script>
</body>
</html>
如果我把我的客戶在遠程服務器中,它運行完美,但如果我嘗試運行從我的客戶本地,我的瀏覽器給我以下錯誤:
XMLHttpRequest cannot load http://localhost:8077/socket.io/1/?t=1343494806858.
Origin null is not allowed by Access-Control-Allow-Origin
我知道有一個HTTP頭解決這個問題em在http服務器中,但我不知道在套接字上下文中是否有類似的選項。我需要一個本地客戶端。我不想從一個額外的http nodejs服務器提供客戶端代碼。
我面臨着完全相同的問題,它讓我瘋狂!你能找到解決方案嗎? – Bitsian 2013-03-25 14:44:34
我還沒有解決它。如果您找到解決方案,請告訴我。 – sgmonda 2013-03-25 20:42:13
我也有這個問題。 – 2014-03-17 01:16:21