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

JavaScript Discussion :

POST ne fonctionne pas


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 321
    Points : 155
    Points
    155
    Par défaut POST ne fonctionne pas
    Bonjour à tous
    Après des heures passées à chercher ça et là des idées pour résoudre mon problème, j'en appelle à nouveau à ce forum.
    Je stocke les données saisies par un client dans une variable texte msg.
    J'essaie d'envoyer ce texte au serveur par un POST avec XMLHttpRequest:
    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
    //************************envoi de la saisie**********************************************
    function prgServeur(url,fctRetour){
        let zhttp = new XMLHttpRequest();                   //création de l'objet AJAX  
        zhttp.onreadystatechange = function(){              //creation evenement attente d'une reception
            if(this.readyState==4 && this.status==200){     //si message est bien reçu par le serveur 
                fctRetour(this);                            //exécute la fonction retour
            }
            else if(this.readyState && this.status==408){
                alert("Le serveur a rompu la liaison");
                return;
     
            }
        };
        //envoi de la saisie par un POST, le serveur renvoit l'ack 
        zhttp.open("POST", url, true);
        zhttp.setRequestHeader("Content-Type","Text/Plain");
        zhttp.send(msg);
    }
    //********************** traitement du message  retour ***************************
    function retour(zhttp){
        let reponse = zhttp.responseText;
        alert(reponse);
    }
    Pas de réponse du serveur.
    J'essaie aussi avec fetch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function prgServeur(url){
        fetch(url, {
            method: 'POST',
            headers:{"Content-Type": "Text/Plain"},
            body: msg,
        })
        .then((response) => {
            alert(response);
        });
    }
    Toujours pas de réponse.
    Je pense que mon message ne part pas.
    Auriez vous une piste?

  2. #2
    Membre averti Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte passionné
    Inscrit en
    Novembre 2002
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte passionné

    Informations forums :
    Inscription : Novembre 2002
    Messages : 229
    Points : 424
    Points
    424
    Par défaut
    Salut mormic,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        fetch(url, {
            method: 'POST',
            body: JSON.stringify(msg),
            headers: { "Content-Type" : "Text/Plain" }
        })
            .then(response => response.text())
            .then(reponse => {
                alert(response);
            })
            .catch(err => console.log(err));

  3. #3
    Membre habitué
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 321
    Points : 155
    Points
    155
    Par défaut
    Merci ASCIIDEFOND pour cette réponse mais le serveur n'attend pas un objet JSON mais simplement du texte (à ski de fond).
    Le Content_Type le précise bien avec Text/Plain.

    Je vais de suite modifier le .then avec ta proposition.

  4. #4
    Membre averti Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte passionné
    Inscrit en
    Novembre 2002
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte passionné

    Informations forums :
    Inscription : Novembre 2002
    Messages : 229
    Points : 424
    Points
    424
    Par défaut
    body: JSON.stringify(msg),
    Désolé, un copier-coller que je n'ai pas corrigé

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 990
    Points : 44 167
    Points
    44 167
    Par défaut
    Bonjour,
    plus que ta façon d'envoyer les données, mais utilise l'API Fetch, c'est la façon dont tu les lis côté serveur qui pêche !
    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fetch(url, {
        method: 'POST',
        body: "Evoi d'un simple texte",
      })
      .then(response => response.text())
      .then(reponse => {
        console.log(response);
      })
      .catch(err => console.log(err));
    côté serveur, il te faut récupérer les données avec :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = file_get_contents('php://input');

  6. #6
    Membre habitué
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 321
    Points : 155
    Points
    155
    Par défaut
    Merci NOSMOKING pour ta remarque
    c'est la façon dont tu les lis côté serveur qui pêche !
    Tu as raison car en consultalt la console je vois ces meessages:
    Nom : ConsoleLog.JPG
Affichages : 50
Taille : 26,0 Ko
    Par contre je n'utilise php.
    Mon serveur est embarqué dans un microcontroleur ESP32 programmé en C/C++ avec PlateformIO et j'utilise une librairie
    asyncWebServer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //****API****
      serveur.on("/API&Cmd=2AA", HTTP_POST, [](AsyncWebServerRequest *req){ 
        req->send(200, "text/plain", "OK");
        String x = req->getHeader(x)->value();
        afficLcd2String(x,"");
        String message = req->getParam(message)->value();
        afficLcd2String(message,"");
        delai('s',5);   
      });
    Peut-être que cela ne vous parle pas et qu'il faille que je m'adresse au forums Arduino/ESP32?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/11/2020, 15h44
  2. [POO] form en post ne fonctionne pas
    Par onApprendCool dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2020, 14h38
  3. POST ne fonctionne pas
    Par Anonyme1784 dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2016, 10h12
  4. Requête post ne fonctionne pas
    Par Ur-86 dans le forum Android
    Réponses: 6
    Dernier message: 29/08/2013, 09h22
  5. [PHP 5.2] GET et POST ne fonctionne pas.
    Par Petugnia dans le forum Langage
    Réponses: 25
    Dernier message: 06/10/2009, 12h13

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