在真实设备上的cordova app请求中出现net :: ERR_CONNECTION_TIMED_OUT错误
我有一个在Chrome浏览器和(genymotion)模拟器上运行良好的应用程序。
但是,如果我在智能手机上运行它,每个服务器请求(post,get,put)都会给出结果: Failed to load resource: net::ERR_CONNECTION_TIMED_OUT
我的设置:
cordova:5.2.0
config.xml文件:
jQuery的:
$.support.cors=true;
我的要求:(我也用骨干做了同样的结果)
$scope.loginRequestObject = $scope.getLoginObject(); $.ajax({ url : $scope.baseUrl + "/myTable", type : 'post', contentType : 'application/json; charset=utf-8', scriptCharset : "utf-8", data : JSON.stringify($scope.loginRequestObject), dataType : 'json', fail : function(a,b,c){ console.log(a); console.log(b); console.log(c); }, success: function(a,b,c){ console.log(a); console.log(b); console.log(c); });
我通过导出和运行(cordova运行android)运行我的应用程序,我的手机有无线连接。
@Asqan,
你犯了一个常见的错误,这个错误列在Cordova / Phonegap新手的开发者的顶级错误中 。 在这种情况下,您需要将white-list
插件和CSP
到您的网页。
另一种方法是快速修复 – 但要知道此修复程序会删除white-list
所有需求。 这会产生一个您可能不希望通过的安全问题 。
QUICK FIX将此添加到config.xml
答案很长就是这样:
从Cordova / Phonegap新手开发人员的热门话题中你可以获得 :
- #6 没有为编译器设置“phonegap版本”
- #7 没有为你的插件设置“版本”
- #10 不在config.xml中添加新的“white-list”和“white-list plugin”参数。
#6&#7
使用CLI版本,如果没有为您的平台分配版本,或者如果未在config.xml中设置phonegap-version,则在“Phonegap Build”中,您将获得最新版本。 如果运气好,您的程序就会按预期运行。 如果你不幸运,你会得到一组级联错误。
对我们所有人来说幸运的是,Holly Schinsky撰写了一篇很好的博文来解释这一切:
Cordova / PhoneGap版本混乱
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
对于#10
这个相对* NEW *的要求意味着 – 要访问网站上的任何网站或资源,您必须使用白名单和白名单插件。 如果您使用cordova-android@4.0.0或更高版本,此要求将生效; 包括cli-5.1.1。 但是,如果您的版本在4.0.0之前,假设为3.5.0或3.7.0,那么您将不必添加白名单要求。
要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。 正如您所料,当添加“白名单”时,不推荐使用事实上的开放访问function。 或者换句话说,事实上的开放访问function已经计划并计划被淘汰。 此更改标志着删除开放访问function的一个步骤。
此外,内容安全策略(CSP)已经吸引了众多开发人员 – 因为它的公开性很差。 根据您的使用情况和您使用的Phonegap版本,CSP需要进入您使用的每个HTML页面,就像您必须等待’deviceready’一样。 但是,有些情况根本不需要它。 文档令一些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。
相关链接
Phonegap Build Forum: 在PGB上升级到cli-5.1.1的注释 ,现在需要白名单
- cordova白名单指南
- Phonegap白名单指南
- Phonegap构建白名单指南
- 应用程序浏览器和本地存储中的Phonegap
- JQuery Autocomplete在Chrome中工作但在android中没有使用phonegap
- 无法从第二个包含的js文件中的第一个包含的javascript文件调用函数
- 如何使谷歌地图像Android手机中的谷歌地图应用程序一样工作
- 页面加载与jQuery-mobile转换不同
- 使用jQuery检测移动设备旋转
- 禁用移动设备的HTML拼写帮助
- 当我设置错误的凭据时,为什么我的http basic auth请求获得状态0? Phonegap Android
- 在Android 4.0.4默认浏览器上,JavaScript点击事件无法在Samsung Galaxy SIII上运行