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 :

Envoi de données avec text/plain ou application/json


Sujet :

AJAX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 115
    Points : 90
    Points
    90
    Par défaut Envoi de données avec text/plain ou application/json
    bonjour
    j'essais desesperement d'envoyer des donne sur mon serveur php 8.0 depuis le dernier firefox.

    avec x-www-form-urlencoded' cela fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    let url = new URL('http://truc.com');
     
    url.searchParams.set('un', 'premier');
    url.searchParams.set('deux', 'seecond');
     
       let response = await fetch('ajax/test.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
          },
        body: url
      });
    ainsi qu'avec formdata

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     const formData = new FormData();
     
    formData.append("un", "premier");
    formData.append("deux", 'second'); 
     
       let response = await fetch('ajax/test.php', {
        method: 'POST',
        body: formData
      });
    par contre ca ne fonctionne pas avec du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let response = await fetch('ajax/test.php', {
        method: 'POST',
        body: 'premier'
      });
    ni avec du json (ce qui m'interresse le plus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      let response = await fetch('ajax/test.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json;charset=utf-8'
          },
        body:  JSON.stringify({
            un: 'premier',
            deux: 'second'
          })
      });
    Dans tous les cas le navigateur envoie bien la bonne requette , exemple pour le dernier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"un":"premier","deux":"second"}
    par contre en inspectant le post recu sur le serveur avec xdebug, seul les deux premiers code me permettent de completer correctement le post.
    D'ou viens le probleme? erreur dans mon javascript , ou probleme de config du serveur?
    merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    Citation Envoyé par vaneck Voir le message
    completer correctement le post.
    je ne comprends pas ce que vous voulez dire pour cela.
    montrez nous le résultat que vous avez actuellement, le résultat souhaité et le débugage du code côté serveur si le souci est à cet endroit.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    alors typiquement avec ce snippet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let response = await fetch('ajax/test.php', {
        method: 'POST',
        body: 'premier'
      });
    firefox envoie bien la bonne donnée :
    Nom : Capture d’écran du 2024-07-08 02-10-13.png
Affichages : 76
Taille : 76,4 Ko
    mais le serveur lui ne recoir rien:
    Nom : Capture d’écran du 2024-07-08 02-12-41.png
Affichages : 75
Taille : 40,9 Ko

    pourtant si je fais la meme manip avec formData , je recoit bien la donnée dans le POST

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    $_POST est seulement rempli avec certains formats d'envois :
    https://www.php.net/manual/fr/reserv...ables.post.php

    pour les autres formats vous pouvez lire le contenu brut avec file_get_contents("php://input") :
    https://www.php.net/manual/fr/wrappe...pers.php.input

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    super merci , je n'aurais jamais trouvé par moi meme!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/04/2011, 23h07
  2. envoyer un mail avec texte pre-rempli
    Par monlou dans le forum Langage
    Réponses: 10
    Dernier message: 25/08/2010, 04h59
  3. [Batch] Envoyer Texte a une application en cours d'exécution
    Par AZzjeioafh dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 02/11/2009, 20h55
  4. envoyer du text via fichier JSON
    Par Halloula dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 05/03/2009, 13h30
  5. Envoyer du texte dans une autre application (ou send key)
    Par Coussati dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 10/02/2006, 16h26

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