我的ReactJS应用程序遇到了麻烦。我正在尝试从在localhost:9090
上运行的(用GOlang编写)的API中获取数据。
我正试图以这种方式获取数据(设置者将“ TEST”用于测试)
function ImamsDetails() {
const [firstName, setFirstName] = React.useState(null);
const [lastName, setLastName] = React.useState(null);
React.useEffect(() => {
fetch('http://localhost:9090/imams/1')
.then(results => results.json())
.then(data => {
setFirstName('TEST');
setLastName('TEST');
});
}, []);
return (
<div>
Name: {!firstName || !lastName ? 'Loading...' : `${firstName} ${lastName}`}
</div>
);
}
我试图将localhost更改为127.0.0.1或我的计算机IP地址,它不起作用。它卡在“正在加载...”上。而如果我将URI更改为https://jsonplaceholder.typicode.com/todos/1之类的远程伪造API,则可以正常工作。
我的API返回如下内容:
{"Id":1,"FName":"XXX","LName":"YYY","PersonType":2,"GivenAudios":null}
与下面发布的链接格式相同。
这真的使我发疯。有什么想法为什么不适用于localhost?
答案 0 :(得分:0)
您是否使用create-react-app
?您应该在package.json
中设置代理,以便可以从外部URL中获取数据。 Here,您可以在React文档中阅读更多内容。
将此添加到您的package.json
:
"proxy": "http://localhost:9090"