NodeJS-socket.io получает исключение «Отказано в доступе» - PullRequest
0 голосов
/ 07 марта 2012

У меня есть приложение узла (0.6.11) /socket.io (0.9.0), которое хорошо работает в FF, но IE8 выдает исключения JS:

Access is denied

в socket.io.js (строка2561):

req.open(method || 'GET', this.prepareUrl() + query, true);

за несколько строк до этого req определяется как

req = io.util.request(this.socket.isXDomain())

Это говорит о том, что это междоменная проблема, но я делаю это локально все время,Плюс FF не имеет проблем.

В чем может быть причина?

.

Вот исходный код:

SERVER:

var app = require('express').createServer()
  , io = require('socket.io').listen(app);

app.listen(1337);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

CLIENT:

<html>
    <head>
    </head>
    <body>        
        <div id='contents'> 
        </div>
        <script src="http://localhost:1337/socket.io/socket.io.js"></script>
        <script>
          var socket = io.connect('http://127.0.0.1:1337');
          socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' });
          });
        </script>
    </body>
</html>

Я читал об установке флага безопасности в значение true, и это исключает исключение, но затем оно неожиданно завершается сбоем и ничего не делает.В FF и IE.

1 Ответ

2 голосов
/ 07 ноября 2013

извините, никто не удосуживается ответить вам, но проблема в том, что вы делаете CORS (кросс-источник-совместное использование ресурсов), что означает, что ваш сервер socket.io работает на порту, отличном от вашего веб-сервера (я предполагаю, порт 80, но вы не говорите это явно)

IE8 и IE9 имеют очень ограниченную поддержку CORS.Я не знаю решения для поддержки IE8, но это ваша проблема.более подробную информацию можно найти здесь: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

...