Я работаю в HapiJs Restful web-сервисе и пытаюсь включить cors, поэтому любой клиент даже из разных доменов может использовать мои сервисы. Я попробовал cors = true в объекте подключения к серверу, но не работал.
Nodejs Hapi - Как включить контроль доступа Cross-Orig
Ответ 1
Где вы положили 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 не возвращается Заголовок Access-Control-Allow-Origin
Ответ 2
Я нашел обходной путь, который работает в 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();
Ответ 3
Дополнение к @James111 ответу,
Даже если этот ответ не работает для вас. проверьте наличие дополнительных заголовков аутентификации, которые вы отправляете.
В моем случае это был X_AUTH_TOKEN
, поэтому в additionalHeaders
вы также можете добавить свой пользовательский заголовок.
например
additionalHeaders: ['cache-control', 'x-requested-with', 'X_AUTH_TOKEN']