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

在React Native中通过USB连接的iPhone访问Mac上的“localhost”时出现Axios网络错误

靳金鹏
2023-03-14

我正在尝试连接到一个在Mac(Catalina 10.15.7)上本地运行的firebase模拟器,并带有usb连接的iPhone6+(14.4.2)。url设置为:axios.defaults.baseURL=`http://$localhost:5001/firbase00/api。react-native应用程序可以成功地连接到本地运行的firebase仿真器和运行在iOS模拟器上的实时服务器。当我试图通过运行react本机代码的usb设备连接到本地服务器时,我遇到了一个网络错误。我需要在一个真实的设备上进行测试,因为ios模拟器不允许推送消息传递,而这正是我正在编写/测试的内容。我试过http和httpS,试过重命名本地主机和共享互联网连接,但没有什么乐趣。我也彻底地寻找了一个解决办法,但没有找到一个可行的办法。概要,代码可以在ios模拟器上工作,本地firebase服务器和活动firebase服务器,连接usb的设备可以连接到活动服务器,但不能连接到本地服务器。与本地服务器的物理设备连接有关。

运行:

  1. “Axios”:“^0.19.2”
  2. “反应”:“16.13.1”
  3. “反应-本机”:“^0.63.3”
  4. iPhone 6 plus 14.4.2.
  5. MacBook air Catalina 10.15.7.

共有1个答案

唐骏祥
2023-03-14

是的,您需要在iOS应用程序中允许HTTP流量(而不是默认允许的HTTPS),您将手动插入info.plist(或者使用XCode)中的以下行。

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>

docs->https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity

编辑:

我看到你使用的是FireBase--这是对我起作用的:

   import functions from '@react-native-firebase/functions';

   const address = Platform.select({
                                  ios: 'localhost',
                                  android:'192.168.0.39'
                                 });
    

   functions().useFunctionsEmulator(`http://${address}:5001`);

   auth().useEmulator(`http://${address}:9099`);

   // FIRESTORE IS NOT WORKING HTTP PREFIX ON LOCALHOST (SO FAR)
   firestore().settings({
     host: `${address}:8080`,
     ssl: false,
     persistence: false,
   });

记住还要构建本机部分(刷新是不够的)。

 类似资料:
  • 我正在尝试从另一个域连接到我的websocket。服务器位于localhost:8098上,客户端位于localhost:8080上。每次尝试连接时,我都会收到“访问控制允许源代码”错误,我还添加了。 不确定少了什么。 服务器 客户 我得到的错误是: CORS 策略已阻止从源“http://localhost:8080”在“http://localhost:8098/ws/Object/info?

  • 在我的工作台上,我尝试使用以下设置创建一个新连接 连接名称:localhost 连接方法:标准TCP/IP 主机名称:localhost 端口:3306 用户名:root 当我尝试使用“Test Connection”按钮时,一条错误消息显示如下:无法连接到localhost上的MySQL:3306,用户根 无法连接到“127.0.0.1”上的MySQL服务器(61) 有什么建议吗?

  • 如何通过浏览器访问ipv6网络,axios 是否支持 ipv6 网络 希望使用axios访问ipv6请求

  • 问题内容: 我正在尝试通过网络连接到MySQL数据库。我已经安装了MySQL,并且该服务在默认端口上运行。我还将SQL连接器安装到jar文件中,并将Java JDK添加到服务器计算机中。我可以使用以下代码连接到本地数据库: 但是,当我尝试通过IP地址(例如:192.168.1.45)通过网络连接到它时: 我收到连接错误: 有人知道这个问题是什么吗?我需要添加其他地址吗?我已经使用地址添加了默认端口

  • 问题内容: 我试图使用angular $ resourses访问在localhost中运行的api,chrome控制台给我说ERR_INSECURE_RESPONSE的错误。 我尝试在Chrome中禁用网络安全。还是一样的错误。这是我使用的角度工厂。如何绕过此错误并测试我的应用。 问题答案: 您必须先进行身份验证,然后将每个请求与auth令牌一起发送。 我使用的是RestAngular,因此我的设

  • 我很难用pgsql设置laravel 5.3(在wamp/windows上运行)。当我尝试使用“php artisan migrate”迁移表时,出现了一个错误“PDO异常-找不到驱动程序” 我安装了postgres 9.6。 我启用了postgresql的php扩展: 所以我被卡住了,无法在laravel进行迁移工作。我的. env: 以下是laravel错误堆栈: 另外,phpinfo()中的