Impossible d’obtenir des résultats JSON avec PhoneGap et jQuery sur une application iPhone

Actuellement j’utilise ce code:

 $(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+'
'); } }); }); });

Cela fonctionne sur n’importe quel navigateur local / serveur, mais lorsque je crée une application iPhone, les résultats JSON ne s’affichent pas. Des idées pourquoi?

Vous devez append le serveur auquel vous vous connectez à la liste blanche (il peut également s’agir d’un caractère générique). Ceci est fait dans votre fichier PhoneGap.plist. À partir de la documentation Phonegap:

En outre, le dernier code a la nouvelle fonctionnalité de liste blanche. Si vous référencez des hôtes externes, vous devrez append l’hôte dans PhoneGap.plist sous la clé “ExternalHosts”. Les caractères génériques sont ok. Donc, si vous vous connectez à “http://phonegap.com”, vous devez append “phonegap.com” à la liste (ou utilisez le caractère générique “* .phonegap.com” qui correspond également aux sous-domaines).

Je ne sais pas si cela va aider, mais j’ai fini par utiliser un plugin Google Feeds car c’était beaucoup plus facile lorsque j’avais ce même problème. Nous avons dû sauter à travers beaucoup de cerceaux pour le faire sans.

Lien: http://jquery.malsup.com/gfeed/

Sinon, vous devez modifier votre plist …

Phonegap lit un paramètre appelé ‘ExternalHosts’ pour vérifier ce qui peut être autorisé.

Ouvrez phonegap.plist – la clé doit y figurer et vous devez en append une nouvelle pour votre domaine.