en php j'ai toujours mis and et j'ai jamais eu de soucis...
j'avais oublié cette particularité de PHP, plus trop de pratique de PHP et trop habitué à la syntaxe javascript !

Ceci étant si il ne manque rien à ton code javascript, la remarque de diazis et à prendre en considération haute

Je rajouterais qu'il te faut également en méthode POST envoyer le content-type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'action.php', true);
  xhr.onreadystatechange = function () {
      if (xhr.readyState == 4 && xhr.status == 200) {
        document.getElementById('retour').innerHTML = xhr.responseText;
       }
    }
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  xhr.send('param1=valeur1&param2=valeur2');