我已经在这个现在三天了,我已经尝试了几乎所有的替代代码和修复程序无济于事。phonegap jQuery .ajax跨域请求在浏览器中工作,在Android SDK失败
下面的代码,从沼泽标准的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;
});
另外,我有:
添加<使用权限android:name =“android.permission.INT ERNET”/>到AndroidManifest.xml文件
在同一目标上的浏览器测试的JSON请求URL(正常工作)
- 在Firefox/Chrome浏览器测试页面(正常工作)
- 尝试在我的银河应用S2在3G(UI一切工作正常,但Ajax请求仍失败)
注意这不是完整的代码,但它只是坐在包裹在一个标准的标准的PhoneGap deviceready监听事件函数.ready()函数。
事实上,这在我的手机和SDK上失败似乎表明phonegap/Eclipse问题,而不是连接/权限问题。
我想部署到Android 2.3 AVD,使用Android SDK。我还没有尝试过部署到Android 4 AVD。
我很喜欢它,如果有人知道问题是什么,因为我已经用尽了建议尝试!
我忘了提及......还将通配符添加到域白名单。 – user1550189 2012-07-25 03:59:59
看起来像这个在太硬的篮子里。也看起来Phonegap未能实现它承诺的内容。耻辱。 :( – user1550189 2012-08-02 00:21:45
找到它,但没有引用它,但在尝试了其他所有内容之后,神奇的行是$ .support.cors = true。 X浏览器请求现在可以在emmulator中和我在phonegap上创建的测试应用中工作最后一个音符......上面的数据类型必须是“json”而不是“jsonp”,至少这是我使用的Weather Underground json feed的情况。 – user1550189 2012-08-09 02:51:09