JQuery mobile + Phonegap : les appels Ajax ne fonctionne pas sur Émulateur Android

J'ai une application web mobile, construit en utilisant les versions suivantes :-

  1. JQuery Mobile : Alpha 4 v1.0a4.1
  2. JQuery: v1.6.1
  3. PhoneGap : v0.9.5

À l'aide de phonegap, cette application est intégrée dans une application android native et de déploiement.

Dans mon application, je fais des différents appels AJAX à l'aide de $.ajax vers des sites web externes.
Pour cela j'utilise dataType: 'jsonp' afin de faire le cross de domaine appelant.

Lorsque je testais mon application en Chrome v12.0.742.100, tout fonctionnait bien, et j'ai pas eu de problèmes avec la récupération des données à partir de ces sites externes. Cependant, dès que j'ai packagé dans une .apk fichier et essayez d'exécuter ce dans l'émulateur, je trouve qu'aucun des appels ajax sont de travail.

J'ai mis des alertes avant et après l'appel ajax et vérifié que les deux alertes sont appelés, mais l'appel ajax est aussi bon que ignorés. J'ai l'exploitation forestière dans le succès de rappel et l'erreur de rappel et de ne pas être atteint. J'ai également vérifié en mettant un point d'arrêt sur le serveur externe site web (pour mes tests, je suis juste en ayant un site web sur ma machine locale elle-même) et le serveur de la page n'est certainement pas d'être appelé.

Dans le logcat, l'erreur que je vois c'est ceci :
D/SntpClient( 59): le temps de la demande a échoué: java.net.Exception socketexception: Adresse famille n'est pas pris en charge par le protocole

Je suis assez nouveau à phonegap ainsi que Jquery Mobile, mais aussi loin que ma compréhension va, mon app phonegap le fichier est référencé par file:/// protocole alors que mon URL AJAX est http://127.0.0.1:someport/someapp/somepage et le message d'erreur semble indiquer que ces deux ne se mélangent pas!! Si c'est effectivement le cas, comment puis-je faire des appels ajax à partir d'un phonegap application déployée?

N'hésitez pas à signaler tout ce qui peut être utile! Je suis assez perplexe sur ce point.

Edit : j'ai vérifié le AndroidManifest.xml fichier et toutes les autorisations en vertu de cette phonegap lien wiki sont définies dans ce fichier.

Edit 2 : Ajout de mon côté client code intitiates de l'appel ajax

var serverUrl = "http://localhost:2424/MyServer/RetrieveMasterData.aspx";
            $.ajax({
                url: serverUrl,
                type: 'POST',
                dataType: 'jsonp',
                data: { MasterDataID: 1 },
                success: function(response) {
                        ...... business logic here
                },
                error: function(xhr, ajaxOptions, thrownError) {
                        ...... error handling something here
                }
            });
Salut, avez-vous ajouté l'autorisation pour se connecter à Internet?
Je n'ai aucune idée de pourquoi ça fonctionne sur google chrome mais pas sur ur android. Mais 1 chose que je sais pour sûr, c'est que de la même origine que la politique ne s'applique pas aux file:/// protocole.
Pouvez-vous poster un extrait de code qui montre le problème.
Mise à jour de la question avec un fragment de code d'un des appels ajax
Je suis confronté au même problème sur Android 2.2, mais dans Android 2.3, il fonctionne très bien.

OriginalL'auteur Jagmag | 2011-06-29