我正在使用离子框架构建我的第一个应用程序。我遇到了以下问题。我在云中托管了一个nodejs rest api。当我使用离子服务运行我的应用程序并获取一些数据时,它确实有效。但是,当我从我的设备(使用离子运行android )执行此操作时,它无法正常工作。 我已经读过一些关于cordova-plugin-whitelist的内容,但是我已经知道了它仍然没有用。
ionic.project
{
"name": "myApp",
"app_id": "",
"proxies": [
{
"path": "/contacts",
"proxyUrl": "https://myapp.herokuapp.com/contacts"
}
]
}
在config.xml中,我有两个标签:
<access origin="*"/>
<allow-navigation href="*" />
我忘了提到我尝试访问其他api https://api.chucknorris.io/jokes/random并且它没有问题。我的nodejs REST服务可能有些错误吗?
答案 0 :(得分:2)
我经历了同样的问题,我尝试了所有可能性。我安装了cordova-plugin-whitelist
插件。它包含config.xml
中的设置,<meta>
与CSP(内容安全政策)的设置,即使这样我也无法解决问题。我做了所有可能的程序,但仍然没有工作。
它适用于ionic serve
和ionic run -l
,但它无法在设备上运行。当我放弃时,我意识到当我包含其他服务器的URL时,它工作,而不是我的URL工作。我认为这在我的服务器或我的API中存在问题。
直到我看到我的常量引用URL没有http
,因为正如在AngularJS中的正常编程中所做的那样,放置常量//api.example.com/
,并让浏览器负责包含它。但它不会在设备上发生,所以我没有访问我的API。
我不知道你的情况是否属实,但我花了很长时间才发现并且想与你分享。
答案 1 :(得分:0)
在index.html中添加此元标记
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
答案 2 :(得分:0)
就我而言,我刚刚安装了 cordova-plugin-whitelist 插件。问题已解决。希望对您有所帮助。
快乐编码:)