net::ERR_CONNECTION_TIMED_OUT错误从cordova应用程序在真实设备上的请求



我有一个在chrome浏览器和(genymotion)模拟器上运行良好的应用程序。

然而,如果我在智能手机上运行它,每个请求服务器(post, get, put)给出的结果:Failed to load resource: net::ERR_CONNECTION_TIMED_OUT

我的设置:

科尔多瓦:5.2.0

config . xml:

    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="*" />
    <allow-intent href="*" />
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的所有需求。这会产生一个安全问题,您可能不希望忽略它。

快速修复将此添加到您的config.xml
<preference name="phonegap-version" value="3.7.0" />

长答案如下:

新开发Cordova/Phonegap的开发者最容易犯的错误:

  • #6 未设置"phonegap版本";
  • #7 未设置"
  • #10 未添加新的"白名单";以及"白名单插件";

For #6 &# 7

使用CLI版本,如果您没有为您的平台或在"Phonegap构建"中分配版本,如果您没有在config.xml中设置Phonegap -version,您将获得最新版本。如果幸运的话,您的程序就会像预期的那样工作。如果您不够幸运,您将得到一组级联错误。

幸运的是,Holly Schinsky写了一篇很好的博客来解释这一切:

Cordova/PhoneGap版本混淆
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

# 10

这个相对*新*的要求意味着-访问任何网站或网络上的资源,你必须使用白名单和白名单插件。如果您使用cordova-android@4.0.0或更好的版本,则此要求将生效;包括cli-5.1.1。然而,如果你的版本在4.0.0之前,假设是3.5.0或3.7.0,那么你将不需要添加白名单要求。

要清楚,"白名单"已经存在了一段时间,但插件和需求是非常新的。正如你所料,当"白名单"添加后,事实上的开放访问特性已被弃用。或者换句话说,事实上的开放访问功能是计划和计划取消的。这一变化标志着开放获取功能的移除。

此外,内容安全策略(CSP)已经抓住了许多开发人员——因为它宣传得太差了。根据你的使用和你正在使用的Phonegap的版本,CSP需要进入你使用的每一个HTML页面,就像你必须等待' devicready '一样。然而,有些情况下根本不需要它。文档会让一些人感到困惑,请仔细阅读。该文档隐藏在许多最新文档页面的底部。

相关链接

Phonegap构建论坛:PGB升级到cli-5.1.1的注意事项,现在需要白名单

  • Cordova白名单指南
  • Phonegap白名单指南
  • Phonegap构建白名单指南

相关内容

  • 没有找到相关文章

最新更新