node服务端解决socket.io跨域问题(Access to XMLHttpRequest at ‘http://localhost/socket.io/?EIO=4)

在这里插入图片描述
原先代码:

var app = require('http').createServer(handler)
var socketio = require('socket.io')
var io = socketio(app)
var fs = require('fs');
app.listen(80)
//处理web服务器正常的请求
function handler(req,res) {
    fs.readFile(__dirname + '/index.html',
        function (err, data) {
            if(err){
                res.writeHead(500);
                return res.end('Error loading index.html')
            }

            res.writeHead(200);
            res.end(data);
        }
    )
}
//实时通讯的连接
io.on("connection",function(socket){
    //客户端发送过来的数据
    socket.emit('news',{hello:'world'});
    //监听客户端发送的内容
    socket.on('my other event',function (data) {
        console.log(data)
    })
})

改完的代码:

var app = require('http').createServer(handler)
server = app.listen(80)
var io = require('socket.io')(server, { cors: true });
var fs = require('fs');

//处理web服务器正常的请求
function handler(req,res) {
    fs.readFile(__dirname + '/index.html',
        function (err, data) {
            if(err){
                res.writeHead(500);
                return res.end('Error loading index.html')
            }

            res.writeHead(200);
            res.end(data);
        }
    )
}
//实时通讯的连接
io.on("connection",function(socket){
    //客户端发送过来的数据
    socket.emit('news',{hello:'world'});
    //监听客户端发送的内容
    socket.on('my other event',function (data) {
        console.log(data)
    })
})

在这里插入图片描述


版权声明:本文为weixin_42236746原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。