2017-09-03 4 views
0

J'ai essayé dur de faire des appels AJAX à mon serveur node.js sans succès.AJAX échoue dans Android en utilisant Cordova

Je l'ai fait ce qui suit:

1) installé le package CORS dans mon serveur Node.js. AJAX a fonctionné dans le navigateur.

2) Ajout du contenu de la politique de sécurité à la suite index.html:

<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://163.172.175.135"> 

3) Ajout de quelques lignes à mon config.xml:

<?xml version='1.0' encoding='utf-8'?> 
<widget id="roda.X.XXXX" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>Roda</name> 
    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 
    <author email="[email protected]" href="http://cordova.io"> 
     Apache Cordova Team 
    </author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <allow-navigation href="*" /> 
    <allow-intent href="*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 
    <allow-intent href="tel:*" /> 
    <allow-intent href="sms:*" /> 
    <allow-intent href="mailto:*" /> 
    <allow-intent href="geo:*" /> 
    <platform name="android"> 
     <allow-intent href="market:*" /> 
    </platform> 
    <platform name="ios"> 
     <allow-intent href="itms:*" /> 
     <allow-intent href="itms-apps:*" /> 
    </platform> 
    <engine name="android" spec="^6.2.3" /> 
    <engine name="browser" spec="^4.1.0" /> 
    <plugin name="cordova-plugin-geolocation" spec="^2.4.3" /> 
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" /> 
</widget> 

Qu'ai-je manqué?

+0

S'il vous plaît ajouter votre message d'erreur exact – Phonolog

+0

D'une certaine manière, le problème est survenu seulement quand j'ai signé et téléchargé l'APK sur Google Play Store. Si je devais transférer l'APK par câble et l'exécuter directement dans mon téléphone, AJAX fonctionnerait. –

Répondre

0

J'ai découvert plus tard que AJAX fonctionnerait en mode débogage, mais pas en mode édition. Le problème était que j'utilisais l'adresse IP au lieu du nom de domaine pour me connecter au serveur, échouant ainsi la vérification SSL. En mode débogage, les certificats SSL ne sont pas vérifiés.

Oeuf. Problème résolu!