Socket.io未设置CORS标头

我知道这个问题已经问过几次了。

但是,我无法获得这些解决方案。

我正在运行标准安装的node.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来确保在Manager.prototype.handleHandshake内部输入以下代码块./lib/manager.js

 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';

}

}

以上是 Socket.io未设置CORS标头 的全部内容, 来源链接: utcz.com/qa/417471.html

回到顶部