我正在尝试实现可用的离子样本教程http://ccoenraets.github.io/ionic-tutorial/install-ionic.html
我能够在Android虚拟设备上部署示例应用程序。但是,该应用程序无法访问笔记本电脑上托管的休息服务。我正在尝试通过将" Localhost"更改为" 10.0.2.2"来访问该服务。我还在config.xml
中添加了以下内容 <access origin="*"/>
有人可以让我知道如何解决这个问题?
如果您使用的是Cordova的最新版本之一,则必须安装Cordova Plugin Whitelist:
cordova plugin add cordova-plugin-whitelist
如果使用选项--save
,它将在您的 config.xml 文件中添加一个部分:
cordova plugin add cordova-plugin-whitelist --save
您可以在此处阅读有关Cordova最近更新中重要更改的一些有用信息。
您需要拥有此:
<access origin="*" />
在您的 config.xml 文件中设置。
如果您使用的是 Android Emulator 您必须在10.0.2.2
中更改localhost
,当然,如果端口与默认值不同,则必须添加端口:80。
参考此处。
如果您使用的genymotion(比Android Emulator好得多)IP地址将为:10.0.3.2
端口num。
样本
Android Emulator :http://10.0.2.2:6050/api/checkstatus
GENYMOTION :http://10.0.3.2:6050/api/checkstatus
如果您想为Android Emulator提供调试Infos,请从命令行运行此操作:
adb -s emulator-5554 logcat
如果您正在运行 IIS Express 的Web服务器,则可能是您的请求无法到达主机。这里有一些选择。我最喜欢的解决方案是使用iisexpress-proxy。
您可以将其安装为NPM软件包:
npm install -g iisexpress-proxy
并运行它指定代理端口:
iisexpress-proxy 6050 to 3000
现在您可以更改模拟器的端口:
Android Emulator :http://10.0.2.2:3000/api/checkstatus
GENYMOTION :http://10.0.3.2:3000/api/checkstatus
最好的解决方案是使用真实的Android设备并使用Chrome Inspect进行调试。
您必须:
- 在您的手机上启用USB调试
- 请访问Chrome浏览器中的此链接( Chrome://Inspect/#设备)
一旦设备显示在列表中,您就可以点击F12,然后查看您在浏览器控制台中获得的错误。
您甚至可以使用端口转发请求到内部服务器;基本上,您可以通过要定义的虚拟端口访问笔记本电脑上的托管服务。