我正在使用HapiJs Restful Web服务并尝试启用cors,因此即使来自不同域的任何客户端也可以使用我的服务。我在服务器连接对象中尝试了cors = true但没有工作。
答案 0 :(得分:21)
你把cors=true
放在哪里了?你能添加一些代码吗?
如果您不确切地知道cors = true
的位置,这段代码可能对您有所帮助:
server.connection({ routes: { cors: true } })
或者尝试在路线的配置部分添加允许的角色。
server.route({
config: {
cors: {
origin: ['*'],
additionalHeaders: ['cache-control', 'x-requested-with']
}
},
看看这个问题:hapi.js Cors Pre-flight not returning Access-Control-Allow-Origin header
答案 1 :(得分:0)
我发现了可以在Hapi 18中使用的解决方法。请安装hapi-cors插件,设置正确的localhost端口,然后设置插件:
const start = async function () {
try {
await server.register({
plugin: require('hapi-cors'),
options: {
origins: ['http://localhost:4200']
}
});
await server.start();
console.log('server started');
} catch (err) {
console.log(err);
process.exit(1);
}
};
start();
答案 2 :(得分:0)
@ James111的答案
即使该答案对您不起作用。检查您要发送的其他Auth标头。
在我的情况下为X_AUTH_TOKEN
,因此在additionalHeaders
中,您可能还想添加自定义标头。
例如
additionalHeaders: ['cache-control', 'x-requested-with', 'X_AUTH_TOKEN']