使用 Redux 从 REACT 调用 API 的路由问题

Routing Problem in calling API from REACT using Redux

我已经用 Python (django restframework) 创建了 api。我正在使用 redux 从我的反应应用程序中调用 api。

当我这样调用它时它工作正常

   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,它将添加您的 React 应用程序 url.

你可以用路由声明一个变量

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开发服务器转发了。

更多详情,请访问https://webpack.js.org/configuration/dev-server/#devserverproxy