我的PhoneGap应用程序无法访问我的Web服务
My PhoneGap app cannot access my Web Service
我正在寻求帮助,因为我在社区phoneGap网站上发布了一个问题:
http://community.phonegap.com/nitobi/topics/my-phonegap-app-cannot-access-my-web-service?rfm=1但总的来说,我正在慢慢地用我的phoneGap应用测试水,我想访问服务器上的JSON文件并解析它并在我的应用中发出警报。到目前为止,我不能让这个工作。
我尝试过的事情:1)在我的config.xml文件中,在我的phoneGap文件中,我有以下标签: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);
}
});
任何帮助都是非常感激的。谢谢。 我看到你正在使用jQuery。如果你也使用jQuery Mobile作为你的UI框架,你需要在得到deviceready通知后调用$.mobile.allowCrossDomainPages = true;
。您还可以将访问标记设置为<access origin="*" />
以允许所有内容,并在以后对其进行微调。
同样,使用jQuery访问返回JSON数据的一种更简洁的方式可能是这样的:
$.get("http://104.236.6.175/test/test1.json", function (data, status) {
var arr = JSON.parse(data);
});
我快速浏览了你在phonegap社区论坛上的帖子,因为在你有机会回答我的问题之前我要离开几个星期了,我在这里只给你一些提示。
首先,尝试使用<access origin="*" />
在config.xml中的。这可能不是最安全的场景,但我建议在事情不工作时使用*,然后通过限制到您需要的域来确保以后的安全。
在最新版本的cordova/phonegap,你需要有插件"cordova-plugin-whitelist"能够访问远程服务器。没有这个,所有的通信都被切断了。
如果我没有错,你应该在config.xml中添加这一行来添加插件(我不再使用build了,所以我不能检查):
<gap:plugin name="cordova-plugin-whitelist" source="npm"/>
关于最新cordova/phonegap更改的更多信息在这里,在这里或在这里。
最后,为了获得更多关于正在发生的事情的信息,访问日志是很有用的。您可以通过单击phonegap构建中的调试复选框,或通过在计算机上使用adb logcat(需要允许在设备上进行usb调试,并可能在计算机上安装驱动程序)来实现这一点。如果你这样做,你可能会得到一个很好的错误消息告诉你发生了什么。
- 我怎么能在Angular JS中等待,直到我的web服务返回
- 如何获取运行我的 Web 应用程序的用户的 Windows 登录用户名
- 在我的 Web API 中无法获取我的自定义标头
- RequireJS减慢了我的Web应用程序的负载
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- 从我的web应用程序连接到本地sqlexpress数据库
- 如果没有警报,我的web服务将不会被调用
- 如何将我的Web Socket服务器应用程序放在Heroku中
- 如何在我的 Web 应用程序中创建倒计时
- 我的 Web 驱动程序脚本是否可以从网页捕获事件
- 是否有可能通过单击html页面上的按钮在我的Web服务器上运行c ++程序
- 防止与我的 Web 应用程序建立多个连接
- 如何使用 Node/Express 为我的 Web 应用程序提供服务
- 在我的 Web 应用程序上模拟浏览器缓存
- ASP.NET:是否可以将CSS或Javascript注入到我的Web应用程序中的每个页面中
- 如何在我的 Web 表单中选择标记设置验证
- 如何在我的 Web 应用程序中检索和显示 Outlook/Exchange 日历事件
- 在 JavaScript 中获取我的 Web 应用库 URL
- 为什么 Js 无法从我的 Web 服务目录加载图像文件
- 为什么苹果将匿名脚本加载到我的 Web 应用程序中