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

时间:2011-12-13 19:21:52

标签: jquery iphone json cordova jsonp

目前我使用此代码:

<script type="text/javascript">

   $(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, "&euro;", 4, ",", ".");

            if(jQuery.inArray(key,currencies) > -1) {
                myElementToAppendTo.append('<div class="currencyBox"><div class="currency">'+key+'</div><div class="tab1"><div class="half">'+value+'</div><div class="half">'+value3+'</div></div><div class="tab2"><div class="half">1 '+key+' = '+value2+' </div><div class="half">1 '+key+' = '+value4+' </div></div></div>');
            }
       });

    });
    });


</script>

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

2 个答案:

答案 0 :(得分:4)

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

  

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

答案 1 :(得分:0)

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

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

否则你需要修改你的plist ......

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

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