我一直在努力争取整天的这个问题,并在各地搜索。这可能是因为我无法找到的解决方案是一个网页...但我已经看了,如问题和解决方案:PhoneGap不发布AJAX(jsonp)请求
Ajax call on phonegap not sending request
JQuery mobile + Phonegap : Ajax calls not working on Android Emulator
既不存在的解决方案似乎解决了我的问题。
我想要做的就是向我的远程服务器发出一个AJAX调用,上传几个参数并下载一些内容。该脚本在浏览器中完美工作,但根据Phonegap中文件的轻微更改,可能会抛出“超时”错误,或者只是简单地说“错误”。代码如下(AJAX的端点是一个开发终点,我会离开它,所以你可以尝试打它):
<html>
<head>
<script type="text/javascript" charset="utf-8" src="jquery-1.10.2.min.js"></script>
</head>
<body>
<ul>
<div id="app-status-ul">
<li>Loaded</li>
</div>
</ul>
</body>
<script>
var serverRegHit = function(data, httpStat){
$("#app-status-ul").append('<li>Server Reg OK, HTTP status: '+httpStat+'</li>');
$("#app-status-ul").append('<li>Data Status: '+JSON.stringify(data)+'</li>');
};
var serverRegFail = function(data, httpStat){
$("#app-status-ul").append('<li>Server Reg FAIL, HTTP status: '+httpStat+'</li>');
$("#app-status-ul").append('<li>Data Status: '+JSON.stringify(data)+'</li>');
};
$.ajax({url:"http://keb.bz/gcm/?deviceid=12345",
jsonp: 'callback',
dataType: 'jsonp',
timeout: 25000,
success: serverRegHit,
error: serverRegFail});
</script>
</html>
我一直在使用科尔多瓦2.9审判,降级到2.5,但这似乎也没有帮助。
我的config.xml已经列入白名单。*和keb.bz域,权限允许应用程序访问清单中的互联网 - 我假设这是可行的,因为它能够成功检索GCM设备ID。
我已经尝试过使用JSON,JSONp,TEXT和各种数据类型的AJAX,但这些都没有任何区别。
Cordova/PhoneGap中是否存在另一个我缺少的配置点?
任何帮助在这里将不胜感激。
在logcat的控制台任何异常/错误?你确定jQuery库加载成功吗?首先,你应该确保纯JavaScript工作,然后尝试测试jQuery是否正常。 – xiaowl
JQuery加载正常,因为它成功地将错误输出到DOM,并且无法注意到log cat中的任何异常。 – Kaiesh
确保您的应用具有“网络访问”权限。 – xiaowl