Dans le monde du développement web moderne, l'échange de données asynchrones entre le client et le serveur est un aspect crucial de la création d'applications dynamiques et réactives. L'un des outils fondamentaux qui permettent cette fonctionnalité est l'objet XMLHttpRequest, en particulier sa méthode POST. Bien que l'API XMLHttpRequest puisse sembler dépassée à l'ère des API plus modernes comme Fetch et Axios, comprendre ses principes de base est toujours essentiel pour tout développeur JavaScript.
La méthode POST de XMLHttpRequest vous permet d'envoyer des données de manière asynchrone à un serveur sans actualiser l'intégralité de la page web. Cette approche améliore l'expérience utilisateur en offrant un flux d'informations plus fluide et plus efficace, ce qui conduit finalement à de meilleures performances globales de l'application.
Configuration d'un XMLHttpRequest POST
Avant de plonger dans le code, examinons le processus de configuration de base pour une requête XMLHttpRequest POST :
- Créez une nouvelle instance d'objet XMLHttpRequest.
- Définissez la méthode de requête (POST) et le point de terminaison de l'URL.
- Configurez les en-têtes de requête, si nécessaire.
- Définissez la fonction pour gérer la réponse du serveur.
- Envoyez la requête avec la charge utile de données.
// 1. Create a new XMLHttpRequest instance
const xhr = new XMLHttpRequest();
// 2. Define the request method and URL
xhr.open('POST', '/api/endpoint', true);
// 3. Set request headers (if needed)
xhr.setRequestHeader('Content-Type', 'application/json');
// 4. Define the response handler
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Handle the server response
console.log(xhr.responseText);
}
};
// 5. Send the request with data payload
const data = JSON.stringify({ name: 'John Doe', email: 'john@example.com' });
xhr.send(data);
Dans l'exemple ci-dessus, nous créons une nouvelle instance XMLHttpRequest, définissons la méthode POST et le point de terminaison de l'URL, définissons les en-têtes de requête appropriés et gérons la réponse du serveur dans le gestionnaire d'événements onreadystatechange
. Enfin, nous envoyons la requête avec la charge utile de données au format JSON à l'aide de la méthode send()
.

Gestion des réponses et gestion des erreurs
Bien que l'envoi de la requête soit crucial, la gestion correcte de la réponse du serveur est tout aussi importante. Le gestionnaire d'événements onreadystatechange
vous permet de surveiller la progression de la requête et de prendre les mesures appropriées en fonction des propriétés readyState
et status
.
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// Successful response
console.log(xhr.responseText);
} else {
// Error handling
console.error('Request failed. Status:', xhr.status);
}
}
};
Dans l'exemple ci-dessus, nous vérifions le readyState
pour nous assurer que la requête est terminée (XMLHttpRequest.DONE
), puis nous examinons la propriété status
pour déterminer le succès ou l'échec de la requête. Un code d'état de 200 indique généralement une réponse réussie, tandis que d'autres codes d'état peuvent indiquer diverses conditions d'erreur.
Envoi de données de formulaire
Bien que les exemples précédents se soient concentrés sur l'envoi de données JSON, XMLHttpRequest vous permet également d'envoyer des données de formulaire de manière transparente. Ceci est particulièrement utile lorsque vous travaillez avec des formulaires HTML traditionnels ou lorsque vous traitez des téléchargements de fichiers.
const formData = new FormData();
formData.append('name', 'John Doe');
formData.append('email', 'john@example.com');
formData.append('file', fileInput.files[0]);
xhr.open('POST', '/api/endpoint', true);
xhr.send(formData);
Dans cet exemple, nous créons une instance FormData
et ajoutons les champs du formulaire à l'aide de la méthode append()
. Nous pouvons même inclure des téléchargements de fichiers en ajoutant l'objet File
à partir d'un élément <input type="file">
. Enfin, nous envoyons l'objet FormData
directement à l'aide de la méthode send()
.
Générer du code XMLHttpRequest avec Apidog
Apidog est une plateforme de développement d'API collaborative tout-en-un qui fournit une boîte à outils complète pour la conception, le débogage, le test, la publication et la simulation d'API. Apidog vous permet de créer automatiquement du code XMLHttpRequest pour effectuer des requêtes HTTP.
Voici le processus d'utilisation d'Apidog pour générer du code XMLHttpRequest :
Étape 1 : Ouvrez Apidog et sélectionnez nouvelle requête

Étape 2 : Entrez l'URL du point de terminaison de l'API auquel vous souhaitez envoyer une requête, entrez tous les en-têtes ou paramètres de chaîne de requête que vous souhaitez inclure avec la requête, puis cliquez sur "Design" pour passer à l'interface de conception d'Apidog.

Étape 3 : Sélectionnez "Générer le code client" pour générer votre code.

Étape 4 : Copiez le code généré et collez-le dans votre projet.

Utilisation d'Apidog pour envoyer des requêtes HTTP
Apidog offre plusieurs fonctionnalités avancées qui améliorent encore sa capacité à tester les requêtes HTTP. Ces fonctionnalités vous permettent de personnaliser vos requêtes et de gérer des scénarios plus complexes sans effort.
Étape 1 : Ouvrez Apidog et créez une nouvelle requête.

Étape 2 : Trouvez ou entrez manuellement les détails de l'API pour la requête POST que vous souhaitez effectuer.

Étape 3 : Remplissez les paramètres requis et toutes les données que vous souhaitez inclure dans le corps de la requête.

Conclusion
Comme vous pouvez le constater, XMLHttpRequest POST est bien plus qu'un simple outil technique – c'est un véritable tournant qui ouvre un monde de possibilités aux développeurs web. Que vous construisiez des interfaces utilisateur dynamiques, que vous vous intégriez à des API puissantes ou que vous créiez la prochaine génération d'expériences web immersives, XMLHttpRequest POST est votre arme secrète.