JQuery mobile + Phonegap : Ajax-calls funktioniert nicht auf Android Emulator

Ich habe eine mobile web-Anwendung wurde mit den folgenden Versionen :-

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

Mithilfe von phonegap, diese Anwendung erstellt wurde, in eine native android-Anwendung und Einsatz.

In meiner Anwendung habe ich verschiedene AJAX-Aufrufe mittels $.ajax zu externen websites.
Für diese ich einsetzen, dataType: 'jsonp' inorder zu tun, die cross-domain-Aufruf.

Wenn ich testen meiner app in Chrome v12.0.742.100, hat alles gut funktioniert und ich hatte keine Probleme mit dem empfangen der Daten von den externen Standorten. Jedoch, sobald ich verpackte dies in eine .apk-Datei und versuchen Sie, diese laufen im emulator, ich finde, dass keine der ajax-Aufrufe arbeiten.

Habe ich Warnungen vor und nach dem ajax-Aufruf und bestätigten, dass beide Warnungen sind berufen, aber der ajax-Aufruf ist so gut wie ignoriert. Ich habe die Protokollierung sowohl in der Erfolgs-callback und den Fehler-Rückruf und nicht erreicht wird. Ich habe auch überprüft werden, durch das setzen eines Haltepunktes auf die externe server-website (für meine Prüfung, ich bin nur mit einer eigenen Webseite auf meinem lokalen Rechner selbst) und die server-Seite ist definitiv nicht aufgerufen.

In logcat, die Fehler, die ich sehen kann, ist diese :
D/SntpClient( 59): request time failed: java.net.SocketException: Address family not supported by protocol

Ich bin ziemlich neu phonegap sowie Jquery Mobile, aber soweit mein Verständnis geht, mein phonegap-app-Datei verwiesen wird, die von file:/// Protokolls, in der Erwägung, dass mein AJAX-URL ist http://127.0.0.1:someport/someapp/somepage und der Fehler scheint zu sein, die darauf hinweist, dass diese zwei dont mix!! Wenn dies tatsächlich der Fall ist, wie gehe ich über ajax-Aufrufe aus einer phonegap-Anwendung bereitgestellt?

Bitte fühlen Sie sich frei zu zeigen, etwas anderes, das kann hilfreich sein! Ich bin ziemlich ratlos an dieser Stelle.

Edit : ich habe die AndroidManifest.xml Datei-und Berechtigungen gemäß dieser phonegap wiki-link sind in dieser Datei.

Edit 2 : Hinzufügen in meine client-seitige code intitiates der ajax-Aufruf

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
                }
            });
  • Hallo, haben Sie die Berechtigung für die Verbindung zum Internet?
  • Ich habe keine Ahnung, warum es funktioniert auf Ihrem chrome, aber nicht auf das ur-android. Aber 1 Sache, die ich sicher wissen, ist, dass die same-origin-Richtlinie gilt nicht für file:/// Protokoll.
  • Kannst du ein code-snippet, das zeigt das Problem.
  • Aktualisiert die Frage mit einem code-snippet, das von einer der ajax-Aufrufe
  • Ich bin konfrontiert mit dem gleichen problem auf Android 2.2 aber bei Android 2.3 funktioniert es einwandfrei.
InformationsquelleAutor Jagmag | 2011-06-29
Schreibe einen Kommentar