无法在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
目前我在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 添加到白名单。
相关文章:
- 奇怪的Javascript结果
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- Javascript(jQuery)给了我奇怪的结果
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- JSONP请求返回结果,但也触发error_callback
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 使用Native Sockets在Android中实现WebSockets
- window.onload没有'无法在Android WebView中工作
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 无法在iPhone应用程序上使用PhoneGap和javascript获取JSON结果,但使用相同的代码在Android
- Android Webview中OpenFileChooser的结果导致应用程序不响应
- 使用AJAX获得带有JS的android应用程序的PHP结果
- 如何在Android中解析Java脚本提供的结果
- Android Phonegap与jQuery移动-后退按钮的结果滚动到页面的顶部
- 从网页打开android intent并获取结果
- 如何创建Android应用程序并在表视图中显示结果
- 如何在android中使用javascript界面以及如何在android对话框中显示结果