我在开发过程中一直在使用离子服务测试我的应用程序,一切正常。我现在尝试使用离子构建android导出apk,然后将文件'android-debug.apk'存储在我的网络服务器上,并通过手机浏览器下载并安装它以在现实世界中测试它。
该应用安装正常,但不会让我发出任何$ http请求。我已经安装了插件cordova-plugin-whitelist,并且还将以下内容添加到我的config.xml文件中:
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
除此之外,我已将其添加到我的主index.html文件中:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
有人可以告诉我为什么请求仍然失败了吗?
我已经在2个不同的服务器上进行了测试,两个服务器都启用了CORS,并且已经使用Postman进行了验证。
感谢您的帮助
编辑:
我的$ http请求如下所示:
$http.get('http://url.com/request').then(function(res) {
console.log('success');
console.log(res);
}, function(res) {
console.log('error');
console.log(res);
});
启用远程chrome调试后,我收到一个错误提示,后跟一个包含以下内容的对象:
data: null,
status: 0,
statusText: ""
答案 0 :(得分:2)
看起来我需要添加:
<uses-permission android:name="android.permission.INTERNET" />
进入platforms / android / AndroidManifest.xml。现在工作正常!