React Native使用代理获取本地服务器

时间:2019-02-23 09:01:35

标签: reactjs api react-native proxy fetch

在我的本地本机应用程序中,我试图对本地后端服务器执行fetch。在我的package.json中放了"proxy": "http://localhost:3000"

我的抓取看起来像

fetch('/')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.log)

它捕获到错误

[TypeError: Network request failed]

当我删除代理并在提取中手动输入地址时,它就起作用了,我的服务器收到了GET请求。

fetch('http://localhost:3000')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.log)

2 个答案:

答案 0 :(得分:2)

这里有两点:

  • proxy中设置package.json的是a feature of create-react-app,它包装了webpack dev server's proxy。 react-native使用Metro而不是Webpack作为捆绑程序,并且它不支持设置本地代理。

  • 与网络不同,react-native中的http客户端当前没有host。因此,如果您使用fetch('/'),它基本上不知道要发送到哪个域或IP地址。

答案 1 :(得分:0)

您好,您可以使用网络IP地址来使用本地服务器,例如将localhost更改为IP地址,然后可以调用服务器,例如http://192.xxx.x.xxx:3000