android - PhoneGap + Android + jQuery Mobile - 连接到服务器失败

标签 android jquery json jquery-mobile cordova

我正在尝试使用 Phonegap(1.9.0 版)和 jQuery Mobile (1.1.0) 创建一个 Android (2.2) 应用程序。具体来说,该应用应该向现有 WCF REST 服务发送 GET 请求并检索 JSON 数据(文件夹列表)并将每个项目显示为选择下拉菜单中的一个选项。

现在,当我使用桌面浏览器时,所有这些都正常工作。 WCF REST 服务发送正确的响应,浏览器正确呈现页面并将选项放入选择菜单中,正如我所希望的那样。但是,当我在使用 Phonegap 的 Android 应用程序中使用以下代码时:

$.getJSON('http://xxx.xxx.xxx/MobileService.svc/GetFolders?callback=?', null, function (folders) {                  
    $.each( folders, function( i, folder ) {
        $("#folders").append("<option value='"+folder.Id+"'>"+folder.Name+"</option>");
    });
    $("#folders").selectmenu("refresh");
});

...我在启动 Android 应用程序时收到错误消息(在物理设备上调试):

Connection to the server was unsuccessful. ("file:///android_asset/www/index.html")

当我注释掉上面的 $.getJSON 代码时,应用程序加载正常,但选择菜单未填充。

我还注意到,显然因为 Phonegap 使用“file://”协议(protocol),所以它不受“http://”协议(protocol)的“同源策略”的影响......我一直当我使用浏览器时使用 JSONP,这就是我有回调的原因。我不认为这应该是它失败的原因,但我不知道。任何帮助将不胜感激!

我尝试过的事情:

  • 在cordova.xml中将访问源更改为“.*”

  • 添加 'super.setIntegerProperty("loadUrlTimeoutValue", 60000);'到 Activity 中

最佳答案

您可以尝试将 cordova.xml 设置为 "*" 而不是 ".*",如 Getting Started Guide 中所示

或者更好:

 http://xxx.xxx.xxx

关于android - PhoneGap + Android + jQuery Mobile - 连接到服务器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458793/

相关文章:

node.js - 从 mongodb/nodejs 查询嵌套对象数组

android - 我们可以在 Android 中使用 wi-fi 热点连接 10 个以上的设备吗

android - Android资源编译失败(缓存文件错误)

javascript - jquery e.preventDefault 停止循环

jquery - 保持变量或目标整个类

javascript - 将JSON数据转换成Highcharts基本折线图中的格式

android - 在 native react 中忽略 SSL 证书验证

android - 如何使 tensorflow 对象检测更快-r cnn 模型在 Android 上工作?

jquery - 编写jquery插件和 "$.something"构造

php - 使用 php 检测 JSON 中的重复键