【发布时间】:2016-12-17 10:49:39
【问题描述】:
我已经提到https://github.com/apache/cordova-plugin-whitelist 并在下面添加到我的 config.xml:
<plugin name="cordova-plugin-whitelist" spec="~1.3.0"/>
<access origin="*" subdomains="true"/>
<!-- A wildcard can be used to whitelist the entire network,
over HTTP and HTTPS.
*NOT RECOMMENDED* -->
<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>
我的 AndroidManifest.xml 中也有以下权限:
<uses-permission android:name="android.permission.INTERNET" />
下面是 index.html 中的 CSP 声明:
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *;script-src 'self' localhost:35729 84.254.133.91:8080 'unsafe-inline' 'unsafe-eval';connect-src *">
并且服务器正在运行@84.254.133.91:8080
这里是http post调用的代码:
var req = {
method: 'POST',
url: $rootScope.labels.IP + $rootScope.labels.USER_ID_CREATE_URL,
data: {
userId: $scope.newUserIdCreate.username,
password: $scope.newUserIdCreate.password,
}
};
var res = $http(req);
res.success(function (data, status, headers, config) {
alert("request success:" + JSON.stringify({ data: data }));
});
res.error(function (data, status, headers, config) {
alert("request failed:" + JSON.stringify({ data: data }));
});
$http 请求均未通过。我花了将近2天的时间,参考了'n'篇文章,但仍然无法破解这个问题。
此外,我添加了指向“google/facebook”的 href 链接,我可以从应用程序访问这些网站。
通过运行“ionic serve”来使用网络应用程序非常好。在 Android apk 中,没有任何请求到达服务器。
缺少什么配置?
【问题讨论】:
-
嘿,您找到解决问题的方法了吗?我这里也有类似情况:stackoverflow.com/questions/40870757/…
-
在进一步调查中,我看到我的请求到达 Tomcat 服务器,但被 403 拒绝。然后我遇到了这个问题:stackoverflow.com/questions/23224508/… 现在按照上述问题中的步骤解决我的问题。
标签: android ionic-framework cordova-plugins