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

AJAX Discussion :

Aucune réponse sur requête XMLHttpRequest


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    valves hydrauliques
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : valves hydrauliques
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut Aucune réponse sur requête XMLHttpRequest
    Bonjour,

    Je m'excuse avant tout autre chose, je suis débutant absolu en développement WEB.

    J'essaye de comprendre le fonctionnement des requettes XMLHttpRequest, et j'ai un gros soucie :

    Aucun soucie pour lancer des requettes sur une page PHP sur mon site WEB, de transmettre en paramètre une requette SQL, que le fichir PHP sur le site exécute pour insérer des enregistrements dans la base Mysql du site. Mais impossible d'avoir une réponse en retour, que ça soit le contenu d'un fichier texte tout simple, comme on trouve dans des exemples, ou une réponse envoyé par une commande echo du fichier PHP.
    Toujours un statut=1 puis un statut=4 pour dire requette terminé mais une reponse vide??
    J'ai copier plus d'une dizaine d'exemples sur le WEB, des requettes synchrones, asynchrones, j'ai essayé deux ordinateurs différentes, j'ai essayé par internet par ma Box free, ou par mon téléphone mobile (free), lancé les fichiers en locale ou a partir de mon site internet, toujours pareil, aucun retour.

    Je donne un exemple ultrasimple pour recuperer le contenu d'une fichier texte : j'ai bien le statut=4 mais un réponse vide, alors que si je tape l'adresse du fichier texte directement dans le navigateur, il s'ouvre bien.


    Code : 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
    		var xhr = null;
    		if (window.XMLHttpRequest || window.ActiveXObject) {
    			if (window.ActiveXObject) {
    				try {
    					xhr = new ActiveXObject("Msxml2.XMLHTTP");
    				} catch(e) {
    					xhr = new ActiveXObject("Microsoft.XMLHTTP");
    				}
    			} else {
    				xhr = new XMLHttpRequest(); 
    			}
    		} else {
    			alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
    			return;
    		}		   
    		    xhr.onreadystatechange = function() {
    				if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    					alert(xhr.readyState);  // C'est bon \o/
    					alert(xhr.responseText);  // C'est bon \o/
    				}
    		};
    		    xhr.open("GET","http://steinhilber.eu/reponse.txt", true);
    		    xhr.send(null);
    	 }
    qui peux m'aider ? ou est mon erreur ?

    Merci d'avance

    Armin

  2. #2
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    si tu est débutant absolu, laisse tomber XMLHttpRequest, ça risque de te décourager.
    utilise plutôt des fetch, c'est plus simple à utiliser et ça fait du XMLHttpRequest à l'intérieur.
    si tu utilise un ancien navigateur, il existe un polyfill

    en gros pour récupérer un texte cela donne :
    Code JvaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          fetch(myRequest_url)
          .then(function(response) { return response.text() })
          .then(function(text) {
            myArticle.innerHTML = text;
          });

    https://developer.mozilla.org/en-US/.../API/Fetch_API

    liste d'exemples : https://github.com/mdn/fetch-examples

  3. #3
    Membre confirmé
    Homme Profil pro
    valves hydrauliques
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : valves hydrauliques
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut infos supplementaires
    Merci de ta réponse !

    Je suis en train d'examiner ça.

    Comme tu a été très sympha de me donner un premier conseil, je vais tenter de d'exposer (vite fait) le sujet en entier :

    Je suis en train de développer un vaste système d'outils numériques pour l’apiculture. Tout mon application est fait actuellement en javascript avec du graphisme/canavas et sauvegarde de données dans une base WEBsql. le but de ces requettes est de synchroniser la base WEBsql local (utilisé avec une appli locale javascript sur une tablette quand je suis sur le rucher et donc offline) et la base Mysql sur mon site WEB. Je dois donc lancer une appli javascript local pour accéder a ma base WEBsql local et la synchroniser avec la base sur mon site, histoire de pouvoir travailler a la maison avec un ordinateur sur les memes données.

    Tu as des commentaires par rapport a ça ?

    Armin

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    a ma connaissance les bases WEBsql ç'est que sur Chrome, ou les navigateurs de cette famille.
    quand tu parle de base Locale, elle est en fait intégrée dans le navigateur.

    si tu plante ton navigateur ou dois le réinstaller, alors tu perds ta base webSQL

    Maintenant tu peux aussi faire une sauvegarde de ta base locale desn un fichier sur ton disque dur avec le choix de 2 formats => en JSON ou en BLOB (Binary Large Object) mais qui ne sera vcompatible qu'avec le navigateur qui l'a produit.

    En JSOn c'est plus portable avec " tout".

    T'es pas nom plus forcément obligé d'utiliser une base de Données pour tes trucs d'apiculteur, si t'a besoin que de deux ou trois fichiers indexés, autant utiliser indexedDB qui est lui aussi intégré à une game plus large de navigateurs.
    Sachant aussi que l'avenir de WebSQL n'est pas gravé dans le marbre, et qu'il risque d'être remis au calandres grecques voir carrément abandonné.

    Reste encore la solution simple de ne travailler qu'avec des fichiers JSON en local, c'est un truc que beaucoups ignorent, mais dans les navigateurs integrent tous l'API FILE, qui permet de Lire ou d'écrire des fichiers entiers (mais pas de faire des Lecture / ecriture / modification) de fichiers.

    Donc tu te retrouves avec des Fichiers JSON à charger en début de traitement et que tu traite à ta guise sur ton navigateur, puis en fin de partie tu en fait une sauvegardes

    ces mêmes fichirers JSON peuvent te permettre d'établir la mise à jour de la base de données sur le serveur.
    Comme ca tu divises les parties de code selon leur spécificités sans avoir à tout mélanger dans un énorme autocuiseur.

    Bien sur si tu choisie d'utiliser IndexDB, tu élimine le risque de tout perdre en cas d'oubli de sauvegarde, idem pour WEBsql.
    Ce qui ne gêne en rien de faire des exports en JSON de tes données, histoire de garder la souplesse de division des traitements.

    Maintenant tu peux aussi te lancer dans un développement NodeJS (avec ou sans Electron) qui te donnera bien plus de liberté d'action que le dev d'appli enfermée dans un dans un navgateur, et ses restrictions d'utilisation.

  5. #5
    Membre confirmé
    Homme Profil pro
    valves hydrauliques
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : valves hydrauliques
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut la solution
    Bonjour,

    on m'a donné la solution de l'enigme :

    c'est une histoire d'autorisation. En mettant le ligne suivant en tete du fichier cible de la requette, tout marche d'un coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
     header("Access-Control-Allow-Origin: *");
    merci a tous d'avoir participer a m'aider !!



    Armin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL aucun effet sur la base ?
    Par vain_mich dans le forum Hibernate
    Réponses: 5
    Dernier message: 25/05/2007, 15h42
  2. Pb sur Requête croisée Access
    Par Proview dans le forum Access
    Réponses: 3
    Dernier message: 04/10/2005, 17h33
  3. aide sur requête sql
    Par Vodkha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/08/2005, 17h53
  4. Aide sur Requête SQL
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/05/2005, 12h33
  5. Besoin d'aide sur requête croisée
    Par keawee dans le forum Access
    Réponses: 7
    Dernier message: 18/11/2004, 09h46

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