CORS 不适用于 hapijs 和 socket.io
CORS not working with hapijs and 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']);
也没有工作,并在浏览器上抛出一个错误的请求错误。
我错过了什么吗?
非常感谢您的宝贵时间。
您可以尝试明确设置原点而不是使用“*”吗?无论如何,您可能不想在生产中使用“*”。
尝试使用:
server.connection({
host : 'localhost',
port: 3000,
routes: {
cors: {
origin: ['your_origin_here']
}
}
});
有时还会有一个 OPTIONS 预检请求来检查来源,也许也共享它以确保 CORS 设置正确?
所以问题是将主机设置为本地主机,而不是我使用 0.0.0.0 作为解释 here
所以我使用 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']);
也没有工作,并在浏览器上抛出一个错误的请求错误。
我错过了什么吗?
非常感谢您的宝贵时间。
您可以尝试明确设置原点而不是使用“*”吗?无论如何,您可能不想在生产中使用“*”。
尝试使用:
server.connection({
host : 'localhost',
port: 3000,
routes: {
cors: {
origin: ['your_origin_here']
}
}
});
有时还会有一个 OPTIONS 预检请求来检查来源,也许也共享它以确保 CORS 设置正确?
所以问题是将主机设置为本地主机,而不是我使用 0.0.0.0 作为解释 here