我整天都在努力解决这个问题,并且到处搜索。可能是我找不到解决方案的那一页......但我已经查看了问题和解决方案,例如:
JQuery mobile + Phonegap:Ajax 调用在 Android 模拟器上不起作用
那里的解决方案似乎都没有解决我的问题。
我要做的就是向我的远程服务器发出 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>
我曾尝试使用cordova 2.9,并降级到2.5,但这似乎也没有帮助。
我的 config.xml 已将 .* 和 keb.bz 域列入白名单,这些权限使应用程序可以访问清单中的互联网 - 我认为这是可行的,因为它能够成功检索 GCM 设备 ID。
我尝试过通过 AJAX 使用 JSON、JSONp、TEXT 和各种数据类型,但这些都没有任何区别。
Cordova/PhoneGap 中是否还有我缺少的另一个配置点?
这里的任何帮助将不胜感激。