无法在iPhone App上使用PhoneGap和jQuery获取JSON结果

目前我使用此代码:

 $(document).ready(function() { var url = "http://openexchangerates.org/latest.json"; $.getJSON(url + "?callback=?", null,function(data) { var currencies = [ "USD", "EUR", "JPY", "GBP", "CHF", "AUD", "CAD", "EUR", "SEK", "HKD", "NOK", "NZD", "MXN", "SGD", "KRW", "RON", "BGN", "RUB", "PLN", "DKK" ]; var myElementToAppendTo = $("#content"); $.each(data.rates, function(key, value) { value2 = 1 / value; valueForEuro = value; value = accounting.formatMoney(value, "", 4, ",", "."); value2 = accounting.formatMoney(value2, "$", 4, ",", "."); euro = data.rates.EUR; value3 = valueForEuro / euro; value4 = 1 / value3; value3 = accounting.formatMoney(value3, "", 4, ",", "."); value4 = accounting.formatMoney(value4, "€", 4, ",", "."); if(jQuery.inArray(key,currencies) > -1) { myElementToAppendTo.append('
'+key+'
'+value+'
'+value3+'
1 '+key+' = '+value2+'
1 '+key+' = '+value4+'
'); } }); }); });

它适用于任何浏览器本地/服务器,但是当我构建iPhone应用程序时,JSON结果不会显示。 有什么想法吗?

您需要将要连接的服务器列入白名单(这也可以是通配符)。 这在您的PhoneGap.plist文件中完成。 来自Phonegap文档:

此外,最新的代码具有新的白名单function。 如果要引用外部主机,则必须在“ExternalHosts”键下的PhoneGap.plist中添加主机。 通配符都可以。 因此,如果您要连接到“http://phonegap.com”,则必须将“phonegap.com”添加到列表中(或使用与子域匹配的通配符“* .phonegap.com”)。

不确定这是否会有所帮助,但我最终使用了google feeds插件,因为当我遇到同样的问题时,它会更容易。 不得不跳过很多箍来做它没有。

链接: http : //jquery.malsup.com/gfeed/

否则你需要修改你的plist …

Phonegap读取一个名为“ExternalHosts”的设置来检查可以允许的内容。

打开phonegap.plist – 密钥应该在那里,你应该为你的域添加一个新密钥。