Ich habe die letzten zwei Tage daran gearbeitet und viele andere Vorschläge angeschaut. Ja, ich kann diese einfache Ajax-Anfrage aus einer Phonegap-Anwendung bekommen, sowohl auf dem Android-Emulator als auch auf einem echten Android-Handy.AJAX-Anfrage von Phonegap Android schlägt fehl
ist meine phonegap Version (phonegap -v) 3.0.0-0.14.3
Der Code Ich verwende ist:
var url = 'http://www.thomas-bayer.com/sqlrest/CUSTOMER';
return $.ajax({
type: "GET",
url: url,
timeout: 60 * 1000
}).done(function (data) {
alert('hey');
}).fail(function (a, b, c) {
console.log(b + '|' + c);
});
Das Ergebnis bin ich im Protokoll bekommen ist nur:
Fehler | bei Datei: ///android_asset/www/js/index.js: 62
Ich habe die Einstellungen auf die AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
und ich habe folgendes in Config.xml
<param name="android-package" value="org.apache.cordova.core.NetworkManager" />
Wenn ich navigator.connection.type
überprüfe, bekomme ich 3G
auf dem Emulator und wifi
auf dem physischen Telefon.
Irgendeine Idee, was sonst könnte schiefgehen?
UPDATE: Wenn ich die JSON im ersten Parameter der fehlerhaften Funktion log ich:
{"readyState":4,"status":404,"statusText":"error"}
Wird die gleiche Seite (der, die diese Ajax-Anfrage stellt) korrekt im Bestandsbrowser oder einem einfachen WebView geladen? – FoamyGuy
@FoamyGuy Ich hatte gerade den gleichen Gedanken. Jquery hinzugefügt, um dieselbe URL auf einer Seite zu setzen.Ein Klick darauf öffnet den Browser (auf dem Handy) und die Seite lädt erfolgreich –
Verwenden Sie ein anderes Javascript auf Ihren Seiten? WebView deaktiviert standardmäßig die Unterstützung für Javascript. Ich bin nicht sehr vertraut mit Phonegap, so dass ich nicht weiß, ob es die Wahl der, ob Sie das Javascript über eine Konfigurations/Setup-Option oder etwas zu Ihnen zu ermöglichen, oder nicht. Aber wenn dies der Fall ist, müssen Sie sicherstellen, dass Javascript aktiviert ist. Wenn jedoch auf Ihrer Seite (oder auf einer anderen Seite in Ihrer App) anderes JavaScript vorhanden ist und es einwandfrei funktioniert, muss es bereits aktiviert sein. – FoamyGuy