无法在iPhone App上使用PhoneGap和javascript获取JSON结果,但使用相同的代码在Android应用程序上获得结果

时间:2012-06-28 12:58:15

标签: javascript android iphone json cordova

目前我在phonegap应用程序中使用此代码

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://192.168.1.19:8080/searchMobile?categoryRequest=true", true);
xmlhttp.send(null);
xmlhttp.onreadystatechange = function() {alert(xmlhttp.status);
if (xmlhttp.readyState == 4) {
    var responseObject = eval("(" + xmlhttp.responseText + ")");
    var results = responseObject.result;
    if (results != null)
    {
        var resLength = results.length;
        category.length = category.length + resLength;
        for ( var i = 0; i < resLength; i++)
        {
            category.options[category.length - (resLength - i)].innerHTML = results[i].categoryName;
            $(category).selectmenu("refresh");
      }
    }
}

此代码在android中工作,但是当我在iphone上运行此代码时,它给出状态0表示不起作用。 我怎么能克服这个问题 非常感谢。

2 个答案:

答案 0 :(得分:1)

首先,@ Raymond Camden说要确保你的网址为white listed in the .plist。其次,从file://协议执行AJAX时,获得状态为0是完全正常的。 Webkit会将状态设置为0,因为您正在执行跨域请求,该请求在Web浏览器中将被阻止,但在Web视图中,如PhoneGap使用,则完全没问题。所以在这种情况下0 == 200.第三个摆脱eval,如果你要返回JSON数据,请使用JSON.parse(xmlhttp.responseText),因为它是much safer

答案 1 :(得分:0)

尝试将网址添加到白名单。