1. #1
    Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : mars 2017
    Messages : 9
    Points : 3
    Points
    3

    Par défaut Envoyer et lire un objet avec XMLHttpRequest

    Bonjour

    Je viens chercher un peu de lumière
    car je viens tout juste de commencer le JS et NODE.

    J'ai un objet coté client que j'aimerai enregistrer dans ma bdd mongodb.

    Voila comment j'imagine les choses :

    1- Faire une requête XHR pour envoyer mon objet au format JSON à mon serveur
    2- Parser le JSON coté serveur et remplir ma bdd avec les données

    - Est-ce la bonne méthode ?
    - Si oui, comment j'envoie l'objet coté client ?
    - Et surtout, comment je récupère l'objet coté serveur ?

    Merci pour votre aide

  2. #2
    Membre actif
    Avatar de LearningBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2017
    Messages : 33
    Points : 222
    Points
    222

    Par défaut Bonne voie

    Bonjour Math1104,

    Ta méthode est la bonne, on envoie les informations en JSON au serveur, qui récupère les données et les insère en base.
    Pour envoyer un objet JSON depuis le côté client, tu dois passer par l'objet XHR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var xmlhttp = new XMLHttpRequest();   // nouvelles instance de XHR 
    xmlhttp.open("POST", "/json-handler");
    xmlhttp.setRequestHeader("Content-Type", "application/json"); // On définit que l'on envoie du JSON
    xmlhttp.send(JSON.stringify({name:"Green Lantern", color:"green"})); // Ton objet JSON
    Pour la récupèration côté serveur, je sèche par contre, je n'ai pas encore eu l'occasion d'utiliser MongoDB.


    Simon,

    Auteur sur Awesome Angular.
    => Découvrez "Angular, ES6 et TypeScript" pour vos futurs développements web !

  3. #3
    Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : mars 2017
    Messages : 9
    Points : 3
    Points
    3

    Par défaut

    Merci LearningBoy ! J'ai réussi a insérer les données dans ma BDD.

    Pour récupérer les données coté serveur, j'ai utilisé le module 'body-parser' sur req.body !

    Maintenant j'ai un autre soucis, ca marche bien depuis un desktop, mais pas depuis mon iPhone.
    J'ai vérifier avec la console sur safari, ma requête XHR fonctionne bien mais elle n'insère rien en bdd. Grrrr

  4. #4
    Membre actif
    Avatar de LearningBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2017
    Messages : 33
    Points : 222
    Points
    222

    Par défaut Exemple pour d'autres navigateurs

    Bonjour Math1104,

    L'exemple de requête XHR ci-dessus est un exemple standard pour les navigateurs les plus "tolérants".
    En fait, XHR est un objet à la base développé pour IE, donc au niveau du support ça n'est pas génial. Le mieux est d'utilisé une libraire qui assure le fonctionnement de ta requête sur tout les navigateurs (jQuery avec $ajax par exemple), sinon j'ai trouvé cet exemple qui te permettra d'envoyer ta requête avec Safari normalement. (et même IE 7 )

    Simon,

    Auteur sur AwesomeAngular.
    => Découvrez "Angular, ES6 et TypeScript" pour vos futurs développements web !

Discussions similaires

  1. Message dans macro envoyer objet avec Access 2002
    Par bibi28 dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/10/2011, 10h47
  2. Réponses: 1
    Dernier message: 24/10/2011, 00h04
  3. Envoyer un objet avec un Intent
    Par glycerine dans le forum Android
    Réponses: 5
    Dernier message: 27/05/2011, 10h21
  4. Envoyer un objet avec un socket
    Par MAX-k dans le forum C#
    Réponses: 5
    Dernier message: 24/05/2011, 21h27
  5. Réponses: 9
    Dernier message: 22/02/2008, 09h58

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