Сервер на Vercel ошибка CORS или нет пакета OPTIONS
Frontend и Backend приложения залиты на Vercel. При проверке сервера через постман - работает корректно: запросы согласно роутов уходят, получают ответы, данные в БД записываются. Если отправляю запрос с фронта - ошибка CORS, но при этом пакет OPTIONS - 500. На бэке настройка CORS подключена через мидлвару:
const allowedCors = [
'https://movies-explorer-frontend-henna.vercel.app/',
'http://movies-explorer-frontend-henna.vercel.app/',
'http://localhost:3000',
];
const corsOption = (req, res, next) => {
const { origin } = req.headers;
const requestHeaders = req.headers['access-control-request-headers'];
const DEFAULT_ALLOWED_METHODS = ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'];
if (allowedCors.includes(origin)) {
res.header('Access-Control-Allow-Origin', origin);
res.header('Access-Control-Allow-Credentials', true);
}
if (req.method === 'OPTIONS') {
res.status(200);
res.setheader('Access-Control-Allow-Methods', DEFAULT_ALLOWED_METHODS);
res.setheader('Access-Control-Allow-Headers', requestHeaders);
return res.end();
}
return next();
};
module.exports = corsOption;
Пробовала доверенные адреса поставить просто "*" - работает также.
Ответы (1 шт):
Автор решения: Ekaterina Ryabtseva
→ Ссылка
Изменила немного код мидлвары:
`module.exports = (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Authorization');
res.setHeader('Access-Control-Allow-Credentials', 'false');
res.setHeader('Access-Control-Allow-Methods', 'GET,OPTIONS,PATCH,DELETE,POST,PUT');
if (req.method === 'OPTIONS') {
return res.status(200).json(({ body: 'OK' }));
}
return next();
};
`
На данный момент сервер работает корректно :)
