【问题标题】:Network Error from React Native axios call to Node.js来自 React Native axios 调用 Node.js 的网络错误
【发布时间】:2021-12-26 07:13:14
【问题描述】:

我正在尝试从我的 React Native 应用程序进行 Axios 调用,但我收到以下错误:

这是我正在使用的代码的 sn-p。这是基于我尝试过的 axios 教程,但我没有得到“response.data”,而是试图得到“response.message”,看看它是否真的在连接。

仅供参考,我使用 Node.js 和 Express 创建了我的 API。

【问题讨论】:

  • 是的,该链接可以访问。至于响应,我将基于这个示例 (aboutreact.com/react-native-axios)。他们使用response.data;但我试过你的只是以防万一,它给了我同样的错误。不确定它是否与“http”与“https”有关?

标签: javascript node.js react-native axios


【解决方案1】:

我相信您已经在开发中同时运行这两个应用程序,如果这是真的,您从手机访问在计算机上运行的本地 API 几乎没有问题。

解决方案 1

  1. 将您的手机和笔记本电脑连接到同一个 wifi 网络或热点
  2. 获取您计算机的IP地址例如195.938.84.4您可以浏览如何在您的计算机上获取IP地址
  3. 把你得到的IP地址放到你的代码上你的API调用URL,你的代码变成http://195.938.84.4:8000

因为您的手机和计算机连接在同一个网络上,这意味着它们可以使用彼此的 IP 地址在该网络上找到彼此。

解决方案 2

您可以尝试使用 chrome 端口转发

  1. 确保您的手机已使用 USB 数据线连接到您的计算机,并确保您运行命令 adb reverse tcp:8081 tcp:8081 并成功运行
  2. 在 url 输入中打开 chrome 浏览器并输入 chrome://inspect
  3. 点击端口转发选项并在端口输入栏输入8000即端口您的 API 正在您的 PC 上运行,在 端口和地址 输入字段中输入 localhost:8000 然后点击完成。
  4. 点击configure并在ip address and port输入栏输入localhost:8000并按done
  5. 将代码上的 url 更改为 http://localhost:8000
  6. 要在使用手机之前测试您的 api,只需在您的 express 服务器上编写一个虚拟路由,创建一个 GET 请求 路由 /test 并以 json 响应进行响应并打开您的 chrome 浏览器并向 http://localhost:8000/test 发送请求。如果它有效,则意味着您的 react-native 应用现在可以访问您的本地 API,如果它不起作用,请再次刷新或查看步骤。

【讨论】:

  • 我在这个问题上卡了太久,第一个解决方案帮了大忙!仍然需要进行修改,但现在我可以确认它已连接并获取数据。
猜你喜欢
  • 2020-08-25
  • 2021-05-25
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2021-07-07
相关资源
最近更新 更多