IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

problème requete ajax sous android projet cordova


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut problème requete ajax sous android projet cordova
    Bonjour,
    je fais des tests car mes requêtes ajax fonctionnent sur mon projet depuis un ordinateur mais pas après compilation avec cordova
    J'ai bien entendu écumé google mais je n'ai pas réussi à résoudre mon problème; J'ai activé la white list et ajouté la balise <meta> "ad-hoc" recommandée... je pense avoir un problème de paramétrage, peut être faut il un header particulier au niveau de ma page php ???

    le html:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <!DOCTYPE html>
     
    <html>
        <head>
     
            <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: http://www.monsite.fr 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
            <meta name="format-detection" content="telephone=no">
            <meta name="msapplication-tap-highlight" content="no">
            <meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
            <link rel="stylesheet" type="text/css" href="css/index.css">
            <title>Hello World</title>
        </head>
        <body style="text-align:center;">
            <div id="mouch" style="width:80vw; height:40px; line-height:40px; border:solid 1px black;"></div>
    		<br>
    		<input id="bout" type="button" value="envoi">
     
            <script type="text/javascript" src="js/index.js"></script>
        </body>
    </html>

    le xml:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?xml version='1.0' encoding='utf-8'?>
    <widget id="com.filtep.e_simed" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
        <name>e_simed</name>
        <description>
            A sample Apache Cordova application that responds to the deviceready event.
        </description>
        <author email="dev@cordova.apache.org" href="http://cordova.io">
            Apache Cordova Team
        </author>
        <content src="index.html" />
        <plugin name="cordova-plugin-whitelist" spec="1" />
        <access origin="http://monsite.fr/*" />
        <allow-intent href="http://monsite.fr/*" />
        <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>
    </widget>

    le JS:
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    document.getElementById('bout').addEventListener('touchstart', envoi);
     
     
    function envoi(){
    var xhr=new XMLHttpRequest();
     
    					xhr.onreadystatechange = function(){if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    														       document.getElementById('mouch').innerHTML=xhr.responseText;
    													        };
    												        }
    				var req="toto=2"
     
    				xhr.open('GET','http://www.monsite.fr/test/verif_connect.php?'+req,true);
    				xhr.send(null);
    }

    le PHP:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    header('Access-Control-Allow-Origin: *');
     
     
     
     
    echo "message reçu!";
     
     
     
     
    ?>

    Votre aide serait la bienvenue car je suis totalement bloqué !
    Merci d'avance

    Philippe

  2. #2
    Invité de passage
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2021
    Messages : 1
    Par défaut Exactement le même problème
    Bonjour,

    Je suis actuellement en train de développer une application avec cordova. J'utilise des requètes xmlhttprequest pour récuperer des donnés d'une base mysql.

    Tous fonctionnait pendant un temps puis j'ai surement modifier quelque chose qu'il ne fallait pas et je me retrouve avec le problème suivant : lorsque j'ouvre le projet dans chrome tous fonctionne mais lorsque je compile l'application les requètes ne renvoie rien et je n'arrive pas à trouver d'ou proviens le problème (c'est d'autant plus difficile qu'il n'y a pas de console pour voir les erreures).

    J'ai bien fait attention aux Content-Security-Policy :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Security-Policy" http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' 'self' http://www.motocuture.com data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;script-src * data: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'"/>

    Dans ma page php distante j'ai inséré la ligne suivante :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Access-Control-Allow-Origin: *");

    Mon fichier config.xml :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version='1.0' encoding='utf-8'?>
      <widget id="fr.IMTAtlantique.BDS" version="1.0.1" android-versionCode="10001" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
          <name>BDS</name>
          <description>
              A sample Apache Cordova application that responds to the deviceready event.
          </description>
          <author email="dev@cordova.apache.org" href="http://cordova.io">
              Apache Cordova Team
          </author>
          <content src="index.html" />
          <access origin="*" />
          <access origin="http://motocuture.com*" />
          <access origin="http://www.motocuture.com*" />
          <access origin="https://motocuture.com*" />
          <access origin="https://www.motocuture.com*" />
          <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>
          <preference name="android-targetSdkVersion" value="31"/>
          <icon src="www/img/logo.png" platform="android" width="57" height="57" density="mdpi" />
      </widget>

    Et les requêtes sont lancées avec cette fonction :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function Xhr(name,form = [],type = 'text',Fct = function(a){}){
     
          var startURL = "http://www.motocuture.com/App/BDS/";
          var token = window.localStorage.getItem("remember_token");
     
          var Xhr = new XMLHttpRequest();
     
          Xhr.open("POST", startURL+name+".php", true);
          Xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
          Xhr.send("form="+JSON.stringify(form)+"&token="+token);
     
          Xhr.onreadystatechange = function(){
              if(this.readyState == 4 && this.status == 200){
                  console.log(this);
     
                  if (type == 'text') {
                      var Response = this.responseText;
                  }else if(type == 'array'){
                      var Response = JSON.parse(this.responseText);
                  }
     
                  try{
                      Fct(Response);
                  } catch (error){}
     
              }
          }
      }

    Exemple :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
     Xhr('campagne',[],'text',InsertPage('campagne',CampagneInitialize));

    Voilà, j'ai essayé beaucoup de truc pour résoudre le problème sans succès je suis à cours d'idée.

    Si quelqu'un arrive à résoudre mon problème ça serait vraiment super, merci.

Discussions similaires

  1. Problème d'animation sous Android
    Par LePap dans le forum Android
    Réponses: 5
    Dernier message: 28/01/2014, 22h08
  2. [WM17] problème d'affichage sous android
    Par minoo66 dans le forum Windev Mobile
    Réponses: 4
    Dernier message: 26/04/2013, 07h10
  3. Problème trigger SQLite sous Android
    Par Shma94 dans le forum SQLite
    Réponses: 1
    Dernier message: 24/06/2012, 22h14
  4. Problème avec "Service" sous Android
    Par n2engineer5 dans le forum Android
    Réponses: 0
    Dernier message: 07/07/2011, 22h00
  5. [SQL]Problème requete sql sous access avec vba
    Par aaliyan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/04/2007, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo