Socket.io 不设置 CORS 标头




我知道这个问题已经被问过几次了。
但是,我无法让任何这些解决方案起作用。
我正在运行节点.js和 socket.io 的标准安装。(来自 Amazon EC2 上的 yum)
问题是Chrome正在回退到xhr轮询,这些请求需要有效的CORS配置。但是,我似乎无法让它工作。我的 Web 服务器在端口 80 上运行,node.js(socket.io) 在端口 81 上运行。如您所见,我试图让 socket.io 使用源策略。我也尝试使用"* : *"作为起源,但没有运气。
这是我的代码:

var http = require('http');
var io = require('socket.io').listen(81, {origins: '*'});
io.configure( function(){
    io.set('origin', '*');
});
io.set("origins","*");
var server = http.createServer(function(req, res) {
    io.sockets.emit("message", "test");
res.writeHead(200);
    res.end('Hello Http');
    console.log("Message recieved!");
});
server.listen(82);
io.sockets.on('connection', function(client)  {
    console.log("New Connection");
});

谢谢!

这是我

必须用来让 CORS 使用 socket.io 的语法:

io.set( 'origins', '*domain.com*:*' );

如果涉及到它,请使用console.log来确保您在./lib/manager.js中的Manager.prototype.handleHandshake中输入此代码块:

 if (origin) {
    // https://developer.mozilla.org/En/HTTP_Access_Control
    headers['Access-Control-Allow-Origin'] = '*';
    if (req.headers.cookie) {
      headers['Access-Control-Allow-Credentials'] = 'true';
    }
  }

相关内容

  • 没有找到相关文章

最新更新