Socket.io access-control-allow=origin error from r

2019-03-27 22:55发布

I am trying to access a socket.io server from another site. It worked for a few weeks but now I keep getting the following error. It happens when accessing a server on nodester from a server on heroku. The error is:

XMLHttpRequest cannot load http://site2.nodester.com/socket.io/xhr-polling//1311008802545. 
Origin http://site1.heroku.com is not allowed by Access-Control-Allow-Origin.
Resource interpreted as Script but transferred with MIME type text/plain.
Uncaught SyntaxError: Unexpected identifier

Here's how I'm connecting with the socket:

socket = new io.Socket(
    'site2.nodester.com', {port: 80, rememberTransport: false}
);

And here's the server code:

// requires

server = http.createServer(function(req, res){
    // server stuffs
}),

server.listen(8362);

var io = io.listen(server),

// io code

8条回答
We Are One
2楼-- · 2019-03-27 23:34

I've a same problem and I don't arrive at resolved.

I test many configuration:

  io.set("origins","*");
  io.set('transports', [
    'websocket'
  , 'flashsocket'
  , 'htmlfile'
  , 'xhr-polling'
  , 'jsonp-polling'
  ]);

or

  io.set("origins = *");
  io.set('transports', [
    'websocket'
  , 'flashsocket'
  , 'htmlfile'
  , 'xhr-polling'
  , 'jsonp-polling'
  ]);

or

var socket  = io.listen(appS1,{origins: '*:*'});

thanks your help :)

查看更多
唯我独甜
3楼-- · 2019-03-27 23:39

A simple workaround (thanks to mattcodez):

io = io.listen(8888); io.server.removeListener('request', io.server.listeners('request')[0]);

There is an open bug for this issue and you can read more about it here:

查看更多
登录 后发表回答