Ho lavorato a questo negli ultimi due giorni e ho esaminato molti altri suggerimenti. Sì, posso ottenere questa semplice richiesta ajax di lavorare da un'applicazione di PhoneGap, sia sull'emulatore Android che su un vero telefono Android.Richiesta AJAX da PhoneGap Android non riesce
La mia versione è PhoneGap (usando PhoneGap -v) 3.0.0-0.14.3
Il codice che sto utilizzando è:
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);
});
Il risultato mi sto nel registro è just:
errore | al file: ///android_asset/www/js/index.js: 62
ho aggiunto le impostazioni al 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" />
e ho il seguente in Config.xml
<param name="android-package" value="org.apache.cordova.core.NetworkManager" />
Quando controllo navigator.connection.type
Ottengo 3G
sull'emulatore e wifi
sul telefono fisico.
Qualche idea su cos'altro potrebbe andare storto?
UPDATE: Se entro il JSON nel primo parametro della funzione in mancanza ottengo:
{"readyState":4,"status":404,"statusText":"error"}
La stessa pagina viene caricata (quella che rende questa richiesta Ajax) correttamente nel browser azionario o una semplice WebView? – FoamyGuy
@FoamyGuy Ho appena avuto lo stesso pensiero. Aggiunto jquery per impostare lo stesso URL su un tag della pagina .Cliccando su di esso si apre quindi il browser (sul telefono) e la pagina viene caricata con successo –
Stai usando altri javascript sulle tue pagine? WebView per impostazione predefinita disabilita il supporto per javascript. Non ho molta familiarità con PhoneGap, quindi non so se passi la scelta se abilitare o meno il javascript a te tramite qualche opzione config/setup o qualcosa del genere. Ma se lo fa allora dovresti assicurarti che sia impostato per consentire javascript. Se tuttavia hai altri javascript sulla tua pagina (o un'altra pagina nella tua app) e funziona bene, allora deve essere già abilitato. – FoamyGuy