Comment faire une requête Ajax en Post sans jQuery ?

Réponses rédigées par Antoine
Dernière mise à jour : 2021-04-05 15:15:38
Thèmes : ajax - php
Question

Comment faire une requête Ajax avec la méthode Post sans utiliser jQuery ?

Réponse

Pour effectuer un appel Ajax, avec la méthode Post, sans jQuery, vous devez utiliser les objets XMLHttpRequest.

Lors de l'envoi d'une requête Ajax avec la méthode Post, vous devez définir manuellement le type de contenu dans les en-têtes de la requête :

application/x-www-form-urlencoded 

x-www-form-urlencoded permet d'envoyer les données sous la forme de paramètres d'URL.

Voici un exemple d'appel Ajax, sans jQuery, avec la méthode Post et l'objet XMLHttpRequest :

<script>
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function () {
    if (this.readyState == 4) {
        alert('Réponse de la requête AJAX : ' + this.response);
    }
};
ajax.open('POST', 'ajax.php', true);
ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
ajax.send('pass=collaborativejob');
</script>

Remarque : Pour envoyer plusieurs Post, utilisez le caractère & comme séparateur.

http.send('pass=collaborativejob&nom=ted');

Voici le contenu du fichier ajax.php ; il vérifie que la valeur du Post nommé pass est bien égale à collaborativejob :

<?php
if ((isset($_POST['pass'])) && ($_POST['pass'] == 'collaborativejob')) {
echo "mot de passe correct";
}
else echo "mot de passe faux";
?>

Remarque : Vous trouverez la signification des valeurs d'état readyState via cette page du site de Mozilla.