Ajax ... aucune donnée transmise.

Nortuas -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour à tous,

Je n'arrive pas à transférer la donnée d'une variable de mon JS vers mon PHP, j'ai pourtant tout réduit à son maximum.

Voici mon code JS : 

function addStats2() {
  var data = "ok";
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "script2.php", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.send(data);
}

Mon PHP est tout simple ...
J'affiche juste la variable POST via :

print_r($_POST);

Et pourtant, ce que je reçois sur mon navigateur c'est un array vide... 

Array () 

Je ne reçois pas mon "ok"

Une idée ? 

Merci bien :-)

EDIT : Déplacement du sujet dans le bon forum

EDIT² : Ajout des balises de code

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

Bonjour,

Si tu ne nommes pas ta variable, normal que ça ne marche pas.

function addStats2() {
  var data = "mavariable=ok";
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "script2.php", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.send(data);
  xhr.onreadystatechange = function() {//Call a function when the state changes.
    if(xhr.readyState == 4 && xhr.status == 200) {
        alert(xhr.responseText);
    }
  }
  xhr.send(params);
}

0
Nortuas
 

Merci pour la réponse.
Je vois bien dans la partie requête : données de formulaire avec mavariable = ok
Cependant je vois toujours un array vide en réponse... :(

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

Pourrais-tu nous mettre une capture d'écran de la console contenant l'appel Ajax ainsi que l'onglet requête est l'onglet réponse ?

Merci également de nous montrer le code complet de ta page script2.php.

Pense aussi à vérifier l'encodage de tes fichiers.

Voir chapitre 1 du lien suivant

https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

Tu peux aussi essayer de transmettre les données en Json.

Et sinon, si tu veux une méthode un peu plus récente, tu peux utiliser l'API fetch()

0