Я хочу отправить некоторые данные в формате JSON из моего внешнего интерфейса React на порт 3000 с помощью fetch на мой сервер node.js на 3005. Я настраивал cors на своем сервере, но каждый раз, когда я пытаюсь отправить запрос с файлами cookie, Chrome выдает ошибку:
Доступ к выборке в 'http://localhost:3005/user-connected' из источника' http://localhost:3000' заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: значение 'Access-Control Заголовок -Allow-Origin 'в ответе не должен быть подстановочным знаком' * ', если режим учетных данных запроса' include '.
Все console.log из кода сервера пропускаются.
Когда я удаляю заголовок из кода извлечения
"Content-Type", "application / json"
Я получаю куки, но без данных. С включенным заголовком, но без учетных данных: «include», я могу получить свои данные, но никогда не получу оба одновременно.
Вот мой код получения:
fetch("http://localhost:3005/user-connected", {
mode: "cors",
method: "post",
headers: [
["Content-Type", "application/json"],
],
credentials: "include",
body: JSON.stringify({data: "123"})
})
.then(data => data.json())
.then((data) => {
console.log(`Response: ${JSON.stringify(data)}`);
}).catch(err => {
console.log(`Error: ${err}`)
});
Конфигурация cors Node.js:
app.use(cors({credentials: true}));
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type', 'Access-Control-Allow-Origin', 'Origin');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
И мой пост маршрут:
let cookiesData = (req, res) => {
console.log(`Cookie user-connected: ${req.cookies.io}`)
console.log(`Received data: ${JSON.stringify(req.body)}`);
res.send({ status: "OK" });
}
router.post("/user-connected", cors({origin: 'http://localhost:3000'}), cookiesData);
Возможно ли вообще делать то, что я хочу? Или, может быть, я пропустил какую-то важную конфигурацию?