CORS не работает с hapijs и socket.io

поэтому у меня настроен сервер с использованием hapi js и socket.io

var hapi = require('hapi');
var server = new hapi.Server();
server.connection({
    host : 'localhost',
    port: 3000,
    routes: {cors: true}
});
var io = require("socket.io")(server.listener);

на клиенте

var io = socket.connect(':3000');

когда я получаю доступ с локального хоста, все работает нормально, но когда я получаю доступ с внешнего IP-адреса, я получаю ошибку CORS и не могу заставить ее работать, на сервере, который я пробовал, io.set( "origins", "*:*" ); не работал, и io.set('transports', ['websocket', 'xhr-polling', 'jsonp-polling', 'htmlfile', 'flashsocket']); тоже не работал и выдает ошибку неверного запроса в браузере. я что-то пропустил? большое спасибо за ваше время.


person Leonardo Perez    schedule 11.03.2015    source источник


Ответы (2)


Можете ли вы попробовать явно указать источник вместо использования «*»? Вероятно, вы все равно не захотите использовать «*» в продакшене.

Попробуйте использовать:

server.connection({
  host : 'localhost',
  port: 3000,
  routes: {
    cors: {
      origin: ['your_origin_here']
    }
  }
});

Также иногда выполняется предварительный запрос OPTIONS для проверки источника, может быть, поделитесь им, чтобы убедиться, что CORS настроен правильно?

person Kevin Wu    schedule 11.03.2015

поэтому проблема заключалась в настройке хоста на localhost, вместо этого я использовал 0.0.0.0, как объяснено здесь

person Leonardo Perez    schedule 12.03.2015