Фронт (React) не отправляет запрос на бэк (Spring Boot)
Задеплоил фронт-энд (ReactJS) и бек-энд(Spring Boot) как два разных приложения (со своими адресами) на Heroku.
Адрес фронта: https://front-for-app.herokuapp.com.
Адрес бэка: https://back-for-app.herokuapp.com.
На фронте в файле **setupProxy.js** прописал адрес бэка в target:
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'https://back-for-app.herokuapp.com',
changeOrigin: true,
})
);
};
В консоли браузера наблюдаю вот такую ошибку и адрес, по которому уходит запрос:

Попробовал прописать даже в package.json proxy:
"proxy": "https://back-for-app.herokuapp.com",
Результата нет. Подскажите, как мне перенаправить запросы по адресу бэкенда на Heroku? С помощью настроек в setupProxy.js успешно обращаюсь к серверу за данными из базы данных даже с локального адреса - с локального приложения фронтенда. А с Heroku не могу.
Ответы (1 шт):
Я выяснил, в чем было дело. Файл setupProxy.js только для разработки. Для продакшена нам необходим файл static.json в корне проекта.
В моем случае код в нем такой:
{
"root": "build/",
"routes": {
"/**": "index.html"
},
"proxies": {
"/api/": {
"origin": "https://back-for-app.herokuapp.com/api"
}
}
}
Обратите внимание на /api" в конце адреса - эта часть очень важная. Ничего не работает без этого /api"