2015-05-05 7 views
51

La mia versione Cordova si 5.0.0PhoneGap Cordova Ajax richiede 404 (non trovato) Errore

sto ottenendo un errore 404 per tutta la richiesta AJAX fatta quando l'applicazione viene distribuito sul dispositivo. Nel browser Web, funziona bene, ma la stessa app non viene utilizzata su un dispositivo.

Ho provato ad aggiungere seguendo per risolvere il problema ma non ha aiutato.

Config.xml

<access origin="*" /> 

AndriodManiest.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" /> 

Ho anche aggiunto in seguito nel mio file index.html, ma non ha fatto alcuna differenza neanche.

<script> 
    $.support.cors=true; 
</script> 

Chiunque qui ha un altro trucco per risolvere questo problema ?, Sembra essere un problema abbastanza comune con PhoneGap, ma le correzioni di cui sopra lavorato in più vecchio vesion del PhoneGap/Cordova, ma non di loro ha lavorato nel mio caso.

Qualsiasi aiuto sarebbe fantastico.

+0

puoi per favore dare l'url? –

+1

Mi spiace non posso pubblicare l'URL esatto ma ho verificato l'URL ed è un URL valido. È in questo formato - http://www.myserver.co.uk/appname/index.php/api/getplanners – Sahil

risposta

101

ho avuto lo stesso problema e ha dovuto installare il cordova-plugin-whitelist

cordova plugin add cordova-plugin-whitelist 

merito va a questo articolo StackOverflow - Ajax Command to request URL no longer working

+8

Mille grazie. Posso confermare che l'aggiunta di questo plugin ha reso il lavoro ajax. Altre persone che vengono qui per la soluzione si assicurano di aggiornare il file config.xml e di aggiungere questo: Sahil

+2

Ho dovuto usare 'plugin cordova aggiungere https: // github.com/apache/cordova-plugin-whitelist.git' per installarlo. – kentrh

+1

Una cosa: nessun meta tag di Content-Security trovato. Si prega di aggiungerne uno quando si utilizza il plug-in whitelist di cordova-plugin. –

15

Dovrebbe effettivamente aggiungere l'Cordova plug-in whitelist:

cordova plugin add cordova-plugin-whitelist 

o nel file config.xml:

<plugin name="cordova-plugin-whitelist" spec="1" /> 

ma se si utilizza il servizio di creazione di servizi telefonici online la sintassi è diversa. È necessario aggiungere la seguente riga nel file config.xml:

<gap:plugin name="cordova-plugin-whitelist" source="npm" /> 

e autorizzare le richieste di domini incrociati:

<access origin="*" /> 
<allow-intent href="*" /> 
<allow-navigation href="*" /> 

questo non è raccomandato perché un jolly viene utilizzato in tutto il mondo e tutto è permesso. Ma è perfetto per i tuoi test.

1

Questo ha funzionato per me. L'unica differenza è nel mio config.xml, ho dovuto metterlo in un nodo affinché abbia effetto.

Il mio esempio qui sotto:

<platform name="android"> 
    <allow-intent href="market:*" /> 
    <access origin="*" /> 
    <allow-intent href="*" /> 
    <allow-navigation href="*" /> 
</platform> 
+0

questo sta usando un plugin? o vainilla cordova? –

+0

era vaniglia .. – SeanBarberPro

0

PhoneGap utente. Aggiungendo questa linea nel config.xml è la soluzione per me:

<gap:plugin name="cordova-plugin-whitelist" source="npm" />