当前位置: 首页 > 知识库问答 >
问题:

React本机读取api不适用于localhost,IP,甚至10.0.2.2

韩刚洁
2023-03-14

我在Android设备上使用expo客户端,并在localhost:8000上安装了django服务器,我正在尝试使用fetch-in-react-native访问和终结点。我已经了解了如何从Android设备访问本地主机?如何在Android emulator中连接localhost?以及如何连接到我的http://localhost来自Eclipse中Android Emulator的web服务器,但这不起作用。

我也尝试使用我的机器的ip地址,而不是localhost,但没有结果。这是一个示例代码

componentDidMount(){
    return fetch('http://my-ip-address:8000/restapi/')
      .then((response) => {
        console.log("success")
        response = response.json()
      }).catch(error => {
        console.error(error)
      })
  }

我到底做错了什么?

共有3个答案

堵德曜
2023-03-14

根据你的密码,

  • 你的django端口:: 8080
  • 你的读取的目标端口:: 8000

再查一遍。我建议在测试服务器API时使用PostMan。

柳钟展
2023-03-14

除了csum的答案,请检查防火墙是否允许远程访问您的android设备(设备IP为远程)的django服务器。如果您安装了任何反病毒软件并控制防火墙,请确保其防火墙中有规则。

楚帅
2023-03-14

这可能是django配置的问题。尤其是当手机的网络浏览器无法获得预期的响应时。

从Django文档:

Note that the default IP address, 127.0.0.1, is not accessible from other machines
on your network. To make your development server viewable to other machines on the
network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).

了解如何从外部世界访问本地Django Web服务器,尽管答案也适用于本地网络:

python管理。py runserver 0.0.0.0:8000

如果您知道机器的地址,可以将其替换为0.0.0

同样值得注意的是,在响应处理程序中,response。json()返回promise,而不是json。相反,您希望:

fetch('http://my-ip-address:8000/restapi/')
  .then(response => response.json())
  .then(responseJson => {
    console.log("success");
    console.log(responseJson);
  })
  .catch(error => {
    console.error(error);
  })

 类似资料:
  • 问题内容: 我试图读取通过via 创建的数据框,但得到了。我认为这可能与索引为MultiIndex的事实有关,但我不确定如何处理。 调用了55k行的原始数据框,并通过以下方式创建了该数据框: 如果要使用它,这是输出。 当我对这小部分数据(5行)进行处理时,我得到一个。 这是完整的堆栈: 但是,当我在整个数据帧(55k行)上执行此操作时,我得到一个无效的指针错误,并且IPython内核死亡。有任何想

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会

  • 我的GMAILIMAP代码在PHP从我的localhost工作得很好,但它不能从域工作。 我已完成以下项目: 1) 允许不太安全的应用登录2)在GMAIL帐户中启用IMAP 3)未启用双因素身份验证。4) 我也验证了帐户访问权限5)我还允许:http://www.google.com/accounts/DisplayUnlockCaptcha 可能是我在实时服务器上没有SSL的问题吗? 但我不断得

  • 我在一个网站上工作,遇到了一个问题,点击我的“删除”链接会出现一个错误页面。在localhost上运行良好-无法理解为什么在Heroku站点上会有所不同。 有人知道这是怎么回事吗? 我的“图片”控制器: 我的图片/新视图: 以下是我尝试删除图片时的heroku日志(从导航到新图片页面开始(同一视图中的新建和编辑功能): 2015-11-15T16:13:49.189857 00:00 heroku

  • 我正在构建一个混合反应原生RubyonRails应用程序。我正在使用组件中的来检测页面中的更改,并使用它来更改react native navigation菜单。这很好,但当我尝试使用时,页面中可能会有更改,但不会触发。 使用以下代码触发导航状态更改 这可以正常工作,但如果我在ROR应用程序中打开TurboLink,则不再触发。 我该如何解决这个问题?