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

Cannot get JSON results using PhoneGap and javascript on iPhone App but get results on android app using same code

本文关键字:结果 Android 代码 JSON 应用 iPhone 应用程序 程序上 javascript PhoneGap 获取      更新时间:2023-09-26

目前我在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 表示不起作用。我怎样才能克服这个问题非常感谢。

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

尝试将 URL 添加到白名单。