Я пишу BE-приложение, используя Node JS и Hapi (v17). Пока сервер работает, и я пытаюсь вызвать конечную точку, используя метод POST
, я получаю сообщение об ошибке:
Failed to load http://localhost:8001/login: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Я хотел включить CORS
на сайте сервера, но у меня ничего не работает.
вот как я включаю CORS на сайте сервера:
const hapi = require('hapi')
const server = hapi.server({
port: 8001,
host: 'localhost',
routes: {
cors: true
}
})
Я также пытался включить cors для определенного маршрута, но это также не имеет никакого эффекта:
server.route({
method: 'POST',
path: '/login',
config: {
cors: {
origin: ['*'],
additionalHeaders: ['cache-control', 'x-requested-with']
}
},
handler: async (request, reply) => {
return User.login(request, reply)
}
})
Кто-нибудь знает, что мне следует сделать, чтобы включить CORS и избавиться от проблемы?
Кроме того, на вкладке сети браузера есть скриншот:
EDIT:
Я добавил маршрут, который обрабатывает метод OPTIONS
, и теперь у меня есть другая проблема.
Failed to load http://localhost:8001/login: Request header field access-control-allow-credentials is not allowed by Access-Control-Allow-Headers in preflight response.
А вот как все выглядит на вкладке сети: