我的 ionic 应用程序无法连接到手机上运行的 MYSQL 数据库,但在具有 localhost 的 PC 上它将运行

Posted

技术标签:

【中文标题】我的 ionic 应用程序无法连接到手机上运行的 MYSQL 数据库,但在具有 localhost 的 PC 上它将运行【英文标题】:My ionic app wont connect to a MYSQL database running on the phone but on the PC with localhost it will run 【发布时间】:2021-12-31 20:16:26 【问题描述】:

我使用 php API 制作了一个与 mysql 连接的离子应用程序,我将它放在 Xampp 上的另一台计算机上,将其用作同一网络中的远程服务器,当我在具有 ionic serve 的计算机上运行它时,它工作正常,但是当我生成 APK 时,它不会连接到 BD,即使我在同一个网络上,有人知道解决这个问题的方法吗?

这就是它在桌面上的样子

这就是它在手机上的样子

【问题讨论】:

我的结论是它连接到 nodejs 服务器(“ionic serve”)以从那里加载资产,但它无法从 php/mysql API 加载数据。您是如何得出 MySQL 是问题所在的结论的?我的意思是你的前端(角度)确实直接连接到 MySQL 对吗? 我们无法修复图片。请提供相关代码和调试数据。请参阅 How to Ask 以及如何创建 minimal reproducible example 以获得指导。 【参考方案1】:

我的结论是它连接到 nodejs 服务器(“ionic serve”)以从那里加载资产,但它无法从 php/mysql API 加载数据。

您是如何得出 MySQL 是问题所在的结论的?我的意思是你的前端(角度)确实直接连接到 MySQL 对吗?

提示:在调用 API 时检查 ionic 中的设置——它不应指向 localhost/127.0.0.1,而是指向您计算机的网络 IP。 Apache 也应该对来自“外部”的连接“开放”: 看这里:Accessing localhost (xampp) from another computer over LAN network - how to?

【讨论】:

我认为更多的是 Xampp 问题或我的网络,我不确定,MYSQL 运行良好,正如你所说,如果它在本地主机上,它可以连接到它,在我的 PHP 方面,当我进行连接时,我有这样的:private URL_API: string = '192.168.197.90/API';这是我有服务器的IP,这里是我提出请愿的地方 Producto_Listado(_texto: string = '') return this.http.post(this.URL_API + 'listado-productos', this.objectToFormData(文本:_texto )); 从那里,我向应用程序的 PHP 端发出请求 你能在手机浏览器中打开192.168.197.90/API吗?它“加载”正确吗? 192.168.197.90/API 呢? (HTTP,不是 HTTPS)【参考方案2】:

我过去也遇到过同样的问题,这是因为当您在 PC 上运行应用程序时,它正在本地主机上运行,​​就像您的后端一样。当您在移动设备上运行应用程序时,它无法使用 localhost 访问您的电脑来访问后端。

在这种情况下,您必须将您的电脑在本地网络上的 IP 设置为后端地址,这样您的移动应用程序才能访问它

【讨论】:

以上是关于我的 ionic 应用程序无法连接到手机上运行的 MYSQL 数据库,但在具有 localhost 的 PC 上它将运行的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 google play 服务

Strophe.js 无法连接到 openfire

无法将我的手机连接到 Android Studio 或 VS 代码

如何使用 php 和 dreamweaver 将手机上运行的 mysql 服务器连接到我的 mac?

ionic无法加载网页但出现错误:无法连接到服务器

无法将 Nexus One 手机连接到 Android adb