React 本机 Axios 发布请求适用于 iOS 模拟器,但不适用于物理手机

Posted

技术标签:

【中文标题】React 本机 Axios 发布请求适用于 iOS 模拟器,但不适用于物理手机【英文标题】:React native Axios post request works in iOS simulator but not physical phone 【发布时间】:2021-12-15 19:37:19 【问题描述】:

目前在客户端添加注册请求

  const  email, password  = params;
  console.log(params);
  const response = await axios.post('http://localhost:8080/api/v1/auth/register',  email: email, password: password );

适用于模拟器但不适用于 iPhone。这可能是什么原因?该请求也适用于邮递员

【问题讨论】:

你是如何在实际 iPhone 上运行 Web 服务器的? 您可以尝试在您的 Infoplist 文件 ***.com/a/40047949/7956161 中启用 NSAllowsLocalNetworking 手机是否连接到网络服务器正在运行的同一网络? 【参考方案1】:

您可以将您的网络服务器配置为在网络内可访问的 IP 上运行,或者您可以使用ngrok 之类的工具将您的网络服务器公开到互联网(尽管这会产生安全风险)。

您还需要确保您没有使用 localhost 作为 API 基本 URL,否则您的手机会尝试将请求发送给自己并失败。

【讨论】:

感谢您的提示!这对我有用

以上是关于React 本机 Axios 发布请求适用于 iOS 模拟器,但不适用于物理手机的主要内容,如果未能解决你的问题,请参考以下文章

MacOs 和 iOs 上 Safari 的 React 和 Axios GET 请求问题

请求适用于Postman,但不适用于axios.post

适用于 iOS 的 react 本机发行包中没有图像

POST 请求适用于 Postman,但不适用于 axios.post()

对外部 API 的 HTTP 请求适用于 .NET,但不适用于 React(CORS 问题)

反应本机 axios 请求在 IOS 模拟器中不起作用