Реакт-приложение не получает ответ на POST-запрос через Axios

У меня возникла проблема с фронтендом на React. Я пытаюсь отправить POST-запрос через Axios на свой Node.js сервер, который в свою очередь обращается к стороннему API. Но почему-то запрос остается неопределенным, и я не могу получить ответ.

Вот как выглядит мой код на фронтенде:

import { создатьАксиос } from 'аксиос-клиент';

const моеАПИ = создатьАксиос({
  базовыйУРЛ: 'адрес-моего-апи',
});

export const авторизоватьсяВАПИ = async () => {
  try {
    const ответ = await моеАПИ.post('авторизация/токен');
    console.log(ответ); // До этой строки выполнение не доходит
  } catch (ошибка) {
    console.error(ошибка); // И до этой тоже
  }
};

А вот код моего API на бэкенде:

import { создатьСервер, отправитьЗапрос } from 'экспресс-сервер';
import { создатьАксиос } from 'аксиос-клиент';

const сервер = создатьСервер();
const порт = 3004;

const экземплярПост = создатьАксиос();

сервер.post('/авторизация/токен', (запрос, ответ) => {
  экземплярПост.post('авторизация/токен', {
    логин: 'пользователь',
    пароль: 'секрет',
    времяЖизни: '0'
  })
  .then((ответСервера) => {
    console.log('Успех!');
  })
  .catch((ошибка) => {
    console.log('Ошибка');
  });
});

сервер.слушать(порт, () => console.log(`Сервер запущен на порту ${порт}`));

Я проверил вкладку Network в инструментах разработчика, но не могу понять, в чем проблема. Как мне исправить этот код, чтобы получить ответ от API?

Похоже, что проблема в асинхронности. Твой бэкенд не ждет завершения запроса к стороннему API перед отправкой ответа. Попробуй использовать async/await:

сервер.post(‘/авторизация/токен’, async (запрос, ответ) => {
try {
const результат = await экземплярПост.post(‘авторизация/токен’, { … });
ответ.json(результат.data);
} catch (ошибка) {
ответ.status(500).json({ сообщение: ‘Ошибка сервера’ });
}
});

Также проверь, что на фронте ты обрабатываешь промис корректно. Может, стоит добавить .then() после вызова авторизоватьсяВАПИ().

А ты проверял, что твой сервер вообще запускается и слушает на нужном порту? Может, проблема в том, что запрос с фронта просто не доходит до бэкенда? Попробуй добавить какой-нибудь простой лог в начало обработчика запроса, чтобы убедиться, что он вызывается. И еще, не забудь про обработку ошибок на фронте - может, там что-то падает, но ты этого не видишь.

слушай, у тебя проблема может быть в том, что ты не отправляешь ответ клиенту с бэкенда. в обработчике post-запроса на сервере ты делаешь запрос к стороннему апи, но не передаешь результат обратно. попробуй добавить res.json() с данными ответа:

сервер.post(‘/авторизация/токен’, (запрос, ответ) => {
экземплярПост.post(‘авторизация/токен’, {
// … твои данные …
})
.then((ответСервера) => {
ответ.json(ответСервера.data);
})
.catch((ошибка) => {
ответ.status(500).json({ ошибка: ‘что-то пошло не так’ });
});
});

еще проверь, что у тебя правильно настроен cors на бэкенде, если фронт и бэк на разных доменах. удачи с отладкой!