![](/img/trans.png)
[英]Webpack-dev-server config to route API calls from react-router to node/express router
[英]Why isn't webpack-dev-server proxying API calls in React application? Returning 404
我正在使用 Express/Node 連接的 Postgres 數據庫構建一個全棧 React 應用程序。 我沒有使用 create-react-app。 為了測試 API 調用,我使用 axios 在componentDidMount()
中調用 API。 服務器在端口3000
上運行,反應應用程序在端口8080
上運行。 我已經在 Postman 中測試了/users
端點,以確保它可以正常工作。
componentDidMount() {
// failing config for webpack dev server:
axios.get('/api/users')
.then((response) => {
console.log(response)
})
.catch((err) => {
console.log(err);
console.log(err.response)
})
// fails:
// axios.get('/users')
// .then((response) => {
// console.log(response)
// })
// .catch((err) => {
// console.log(err);
// console.log(err.response)
// })
// works fine:
// axios.get('http://localhost:3000/users')
// .then((response) => {
// console.log(response)
// })
// .catch((err) => {
// console.log(err)
// })
}
請注意,直接調用localhost:3000
可以,但我希望能夠調用/users
為生產環境做准備。 所以我在我的 webpack.config.js 文件中添加了以下內容:
devServer: {
contentBase: __dirname,
hot: true,
historyApiFallback: true,
open: true,
proxy: {
'/api': 'http://localhost:3000',
changeOrigin: true
}
}
在運行 webpack-dev-server 時,我還需要添加其他東西來代理 API 調用嗎? 從我看到的教程來看,在webpack.config.js
中配置代理就足夠了,但我只得到 404s。
提前致謝。
至少對我而言,解決方案最終使用了反應環境變量,該變量將動態確定 url 指向。 我遵循了本教程: https://medium.com/@trekinbami/using-environment-variables-in-react-6b0a99d83cf5 。 只需將您的開發環境指向本地主機,然后指向您的服務器所在的任何端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.