我使用create-react-app创建了一个项目,该项目正在http://localhost:3000/上运行
当我想从我的应用程序向http://localhost:3090/发出请求时,我正在我的package.json文件中设置代理,该代理不起作用
componentDidMount() {
fetch('/api/si')
.then(response => {
console.log(response);
return response.json();
})
}
package.json
"proxy":"http://localhost:3090/api"
在这里,我预期的呼叫是localhost:3090 / api / si,但它指向我的客户端服务器3000。我尝试了多种组合都没用
答案 0 :(得分:1)
尝试从中删除/ api
&
否则尝试
"proxy":"http://localhost:3090/api"
}
更改其中之一
如果有多个代理,则可以执行以下操作:
componentDidMount() {
fetch('/si')
.then(response => {
console.log(response);
return response.json();
})
答案 1 :(得分:0)
我也在这个问题上遇到麻烦,对我来说,解决方案是从fetch
切换到axios
(无论如何,我发现它是一个更友好的API)。
尝试这样的事情:
在您的项目根目录中:
npm install axios
在您的代码中:
import axios from "axios";
componentDidMount() {
axios('/api/si')
.then(response => {
console.log(response);
return response.json();
})
}
注意:我尚未测试您的特定用例,因此,如果此方法不起作用,请提出修改建议。要点是,我的API请求从axios
切换到fetch
,这使我可以毫无问题地使用proxy
中的package.json
设置。