web-dev-qa-db-fra.com

Phonegap Cordova Ajax demande 404 (introuvable) Erreur

Ma version de cordova est 5.0.0

Je reçois une erreur 404 pour la requête tout ajax faite lorsque l'application est déployée sur le périphérique. Sur le navigateur Web, cela fonctionne bien, mais la même application déployée sur un appareil ne fonctionne pas.

J'ai essayé d'ajouter ce qui suit pour résoudre le problème, mais cela n'a pas aidé.

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

J'ai également ajouté les options suivantes dans mon fichier index.html, mais cela ne faisait aucune différence non plus.

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

Tout le monde ici a une autre astuce pour résoudre ce problème?, Semble être un problème assez commun avec phonegap mais les correctifs ci-dessus ont fonctionné dans la version plus ancienne de phonegap/cordova mais aucun d’eux n’a fonctionné dans mon cas.

Toute aide est la bienvenue.

56
Sahil

J'ai eu le même problème et j'ai dû installer le cordova-plugin-whitelist

cordova plugin add cordova-plugin-whitelist

Le crédit va à cet article stackoverflow - Ajax La commande pour demander que l’URL ne fonctionne plus

111
Derek Arends

Il devrait en fait ajouter le plugin cordova whitelist:

cordova plugin add cordova-plugin-whitelist

ou dans votre fichier config.xml:

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

mais si vous utilisez le service de construction de phonegap en ligne, la syntaxe est différente. Vous devez ajouter la ligne suivante dans votre fichier config.xml:

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

et autoriser les requêtes entre domaines:

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

Ceci n'est pas recommandé car un caractère générique est utilisé partout et tout est autorisé. Mais c'est parfait pour vos tests.

20
Damien

Cela a fonctionné pour moi. La seule différence réside dans mon fichier config.xml. Je devais le placer dans un nœud pour qu'il prenne effet. 

Mon exemple ci-dessous:

<platform name="Android">
    <allow-intent href="market:*" />
    <access Origin="*" />
    <allow-intent href="*" />
    <allow-navigation href="*" />
</platform>
1
SeanBarberPro

Utilisateur Phonegap. Ajouter cette ligne au fichier config.xml est la solution pour moi:

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