我已经为此工作了三天,并且几乎尝试了所有替代代码和修复程序,但均无济于事。
下面是代码,取自沼泽标准 jQuery 示例:
$.ajax({
url: "http://api.wunderground.com/api/4213a68e7f20c998/geolookup/conditions/forecast/q/Australia/Noarlunga.json",
dataType: "jsonp",
success: function(parsed_json) {
alert("YEP!");
var loc = parsed_json['response'];
var weather = "Location: " + parsed_json.location.city + "<br />";
weather += "Wind: " + parsed_json.current_observation.wind_dir + " ";
weather += parsed_json.current_observation.wind_mph + "-" + parsed_json.current_observation.wind_gust_mph + " knts";
$("#info").html(weather);
}
});
这是很多人建议的一些配置(什么也没做)
$( document ).bind( "mobileinit", function() {
// Make your jQuery Mobile framework configuration changes here!
$.mobile.allowCrossDomainPages = true;
$.mobile.ajaxEnabled = true;
$.mobile.pushStateEnabled = false;
$.mobile.allowCrossDomainPages = true;
});
此外,我有:
将 <uses-permission android:name="android.permission.INTERNET" /> 添加到 AndroidManifest.xml 文件中
在同一目标上测试浏览器中的 json 请求 URL(工作正常)
- 在 FireFox / Chrome 中测试页面(工作正常)
- 通过 3G 在我的 Galaxy s2 上尝试了该应用程序(UI 一切正常,但 ajax 请求仍然失败)
请注意,这不是完整的代码,但它只是位于标准 phonegap deviceready 侦听器事件函数中,该函数包装在标准 .ready() 函数中。
这在我的手机和 SDK 上失败的事实似乎表明存在 phonegap / Eclipse 问题,而不是连接 / 权限问题。
我正在尝试使用 Android SDK 部署到 Android 2.3 AVD。我还没有尝试部署到 Android 4 AVD。
如果有人知道问题出在哪里,我会很高兴,因为我已经没有尝试的建议了!