Проблема маршрутизации при вызове API из REACT с помощью Redux
Я создал api с помощью Python (django restframework). Я вызываю этот api из моего приложения react, используя redux.
Он работает нормально, когда я вызываю его следующим образом
const {data} = await axios.get(`http://127.0.0.1:8000/api/products/${id}`)
но когда я меняю url на
const {data} = await axios.get(`api/products/${id}`)
Затем он делает запрос на другой маршрут (http://localhost:3000/product/api/products/6), и я хочу, чтобы он сделал вызов на (http://localhost:8000/api/products/6
).Я добавил путь в сервер django и разрешил вызовы из приложения react. и он работает отлично, когда я работал с другими маршрутами.
например, он работал нормально, когда я звонил на этот маршрут
const {data} = await axios.get('api/products/')
Вам нужно указать url для api. Если вы не укажете полный url, он добавит url вашего приложения react.
Вы можете объявить переменную с помощью маршрута
API_URL = "http://localhost:8000/"
const {data} = await axios.get(`${API_URL}api/products/${id}`)
module.exports = {
//...
devServer: {
proxy: {
'/api': {
target: 'http://127.0.0.1:8000',
changeOrigin: true,
},
},
},
};
Добавьте вышеуказанную конфигурацию в ваш webpack, после чего запрос может быть перенаправлен сервером wepack dev.
Подробнее, пожалуйста, посетите https://webpack.js.org/configuration/dev-server/#devserverproxy