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

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

最佳答案

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

关于javascript - 无法在 iPhone 应用程序上使用 PhoneGap 和 javascript 获取 JSON 结果,但在使用相同代码的 Android 应用程序上获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245196/

相关文章:

javascript - html 中的脚本标记语法

java - 安卓和Java : Edit Text with multiple language support but few special characters

android - 不同设备上不同大小的 ImageView

ios - 如何在XCode中获取不同iphone尺寸(4S、5、6)的app截图

javascript - NodeJs 对每个返回的 MySql 结果对象执行操作

javascript - ReactJS-目录选择对话框不起作用

php - 如何从 mysql 数据库中回显第 i 行和第 n 列?

Java .xml 创建可绘制按钮背景

iphone - 何时删除 iOS 钥匙串(keychain)项目?

iphone - 对 NSArray 中的对象进行排序