Javascript 我的PhoneGap应用程序无法访问我的Web服务

Javascript 我的PhoneGap应用程序无法访问我的Web服务,javascript,android,json,cordova,phonegap-build,Javascript,Android,Json,Cordova,Phonegap Build,我在社区phoneGap网站上发布了一个问题,我正在寻求帮助: 但总的来说,我正在用我的phoneGap应用程序慢慢地测试waters,我想在我的服务器上访问一个JSON文件,解析它,并在我的应用程序中发出警报。到目前为止,我还不能让它工作 我尝试过的事情: 1) 在phoneGap文件中的我的config.xml文件中,我有以下标记:access origin=”http://104.236.6.175“subdomains=“true” 2) 使用JavaScript访问JSON文件有多种

我在社区phoneGap网站上发布了一个问题,我正在寻求帮助:

但总的来说,我正在用我的phoneGap应用程序慢慢地测试waters,我想在我的服务器上访问一个JSON文件,解析它,并在我的应用程序中发出警报。到目前为止,我还不能让它工作

我尝试过的事情: 1) 在phoneGap文件中的我的config.xml文件中,我有以下标记:access origin=”http://104.236.6.175“subdomains=“true”

2) 使用JavaScript访问JSON文件有多种不同的方法,但目前这是我的代码:

$("#requestJSON").click(function () {
    var xmlhttp = new XMLHttpRequest();
    var url = "http://104.236.6.175/test/test1.json";

    xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      var myArr = JSON.parse(xmlhttp.responseText);
      myFunction(myArr);
     }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
    function myFunction(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
    out += '<a href="' + arr[i].url + '">' +
    arr[i].display + '</a><br>';
    }

    alert(out);
    $("#resultLog").html(out);
    }


    });
$(“#requestJSON”)。单击(函数(){
var xmlhttp=new XMLHttpRequest();
变量url=”http://104.236.6.175/test/test1.json";
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var myArr=JSON.parse(xmlhttp.responseText);
myFunction(myArr);
}
}
open(“GET”,url,true);
xmlhttp.send();
函数myFunction(arr){
var out=“”;
var i;
对于(i=0;i

非常感谢您的帮助。谢谢。

我看到您正在使用jQuery。如果您的UI框架也使用jQuery Mobile,则需要调用
$.Mobile.allowCrossDomainPages=true在收到deviceready通知后。此外,您还可以将访问标记设置为
,以允许所有操作,并在以后对其进行微调

此外,使用jQuery,访问返回JSON数据的更简洁的方法可能如下所示:

$.get("http://104.236.6.175/test/test1.json", function (data, status) {
    var arr = JSON.parse(data);
});

我看到您正在使用jQuery。如果您的UI框架也使用jQuery Mobile,则需要调用
$.Mobile.allowCrossDomainPages=true在收到deviceready通知后。此外,您还可以将访问标记设置为
,以允许所有操作,并在以后对其进行微调

此外,使用jQuery,访问返回JSON数据的更简洁的方法可能如下所示:

$.get("http://104.236.6.175/test/test1.json", function (data, status) {
    var arr = JSON.parse(data);
});

我快速浏览了你在phonegap社区论坛上的帖子,因为在你有机会回答我的问题之前,我会离开几周,我在这里给你一些提示

首先,尝试使用

<access origin="*" />
和或


最后,为了获得更多关于正在发生的事情的信息,访问日志是很有用的。你可以通过点击phonegap build中的debug复选框,或者在你的计算机上使用adb logcat(需要允许在你的设备上进行usb调试,可能还需要在你的计算机上安装驱动程序)来实现这一点。如果你这样做,你很有可能会收到一条很好的错误消息,告诉你发生了什么。

我快速浏览了你在phonegap社区论坛上的帖子,因为在你有机会回答我的问题之前,我会离开几周。我在这里给你一些提示

首先,尝试使用

<access origin="*" />
和或


最后,为了获得更多关于正在发生的事情的信息,访问日志是很有用的。你可以通过点击phonegap build中的debug复选框,或者在你的计算机上使用adb logcat(需要允许在你的设备上进行usb调试,可能还需要在你的计算机上安装驱动程序)来实现这一点。如果您这样做,您可能会收到一条很好的错误消息,告诉您发生了什么。

非常感谢您抽出时间。我尝试了你所有的建议,但我还是迷路了。我不知道我做错了什么。我觉得我已经尝试在应用程序方面尽我所能。我几乎觉得服务器端有些东西我没有注意到。你还有什么想法吗?再次感谢。非常感谢你抽出时间。我尝试了你所有的建议,但我还是迷路了。我不知道我做错了什么。我觉得我已经尝试在应用程序方面尽我所能。我几乎觉得服务器端有些东西我没有注意到。你还有什么想法吗?再次感谢。为什么不使用$.ajax或$.get或$.getJSON作为http请求?您使用的是什么版本的phonegap,您是否在config.xml中配置了“access origin”?如果使用最新版本,是否包含cordova插件白名单插件?您是否已登录应用程序的日志以查看是否有消息?您好。我从未真正让我的web服务工作过。我不知道我做错了什么。我选择做的是在我的android手机上提供本地存储的JSON文件,并使用JQuery用Ajax脚本解析出来。它似乎在工作。下面是一个例子:为什么不使用$.ajax或$.get或$.getJSON来处理http请求?您使用的是什么版本的phonegap,您是否在config.xml中配置了“access origin”?如果使用最新版本,是否包含cordova插件白名单插件?您是否已登录应用程序的日志以查看是否有消息?您好。我从未真正让我的web服务工作过。我不知道我做错了什么。我选择做的是在我的android手机上提供本地存储的JSON文件,并使用JQuery用Ajax脚本解析出来。它似乎在工作。下面是一个例子:
标记修复了我的问题。非常感谢。
标记修复了我的问题。非常感谢。