CORS不使用hapijs和socket.io

时间:2015-03-11 05:23:56

标签: node.js socket.io cors hapijs

所以我使用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');

当我从localhost访问时一切正常,但是当我从外部IP访问时出现CORS错误并且无法使其正常工作,在服务器上我已尝试io.set( "origins", "*:*" );没有& #39;工作,io.set('transports', ['websocket', 'xhr-polling', 'jsonp-polling', 'htmlfile', 'flashsocket']);也没有工作,并在浏览器上抛出错误的请求错误。 我错过了什么吗? 非常感谢你的时间。

2 个答案:

答案 0 :(得分:6)

您可以尝试明确设置原点而不是使用" *&#34 ;?你可能不想使用" *"无论如何,在生产中。

尝试使用:

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

有时也会有一个OPTIONS预检请求来检查原点,也可以分享它以确保正确设置CORS?

答案 1 :(得分:0)

所以问题是将主机设置为localhost,而我使用0.0.0.0解释here