4. Introduction à AJAX
4.1 Qu’est-ce qu’AJAX ?
Lorsque vous remplissez un formulaire ou cliquez sur un bouton, le navigateur peut :
-
soit recharger toute la page pour obtenir une réponse du serveur,
-
soit, plus discrètement, envoyer une requête en arrière-plan, et mettre à jour la page sans la recharger.
Ce deuxième cas s’appelle AJAX (Asynchronous JavaScript And XML).
À quoi ça sert ?
AJAX permet au JavaScript dans le navigateur de :
-
envoyer une requête vers le serveur (souvent avec
fetch()
) -
recevoir une réponse (souvent en JSON)
-
mettre à jour le contenu de la page sans quitter l’écran
Cela rend les sites plus réactifs et plus agréables à utiliser.
Ce que nous allons faire
Dans ce cours, nous n’allons pas explorer toutes les possibilités d’AJAX, mais nous allons :
-
utiliser
fetch()
pour interroger le serveur, -
recevoir des données au format JSON,
-
afficher dynamiquement ces données sur la page grâce au JavaScript frontend.
Cela nous suffira largement pour :
-
exploiter les fonctions du repository que nous venons de créer,
-
par exemple pour afficher la liste des utilisateurs de la base de données.
Vous n’avez pas besoin de connaître tous les détails techniques d’AJAX.
Vous devez surtout comprendre que cela nous permet de connecter JavaScript au serveur, et d’utiliser les données dynamiques sans recharger la page.
4.2 Introduction à fetch()
Pour faire une requête AJAX avec JavaScript moderne, on utilise généralement la fonction fetch()
.
Elle permet de demander des données au serveur, et de récupérer une réponse sans recharger la page.
Exemple simple : récupérer un message depuis le serveur
1. Route côté serveur
Dans votre fichier server.js
, ajoutez cette route très simple :
json
à la page qui l'a appelé.
2. Code JavaScript côté client (dans script.js par exemple)
fetch("/api/message")
.then(response => response.json())
.then(data => {
console.log("Message du serveur :", data.message);
})
.catch(error => {
console.error("Erreur lors du fetch :", error);
});
-
fetch(...)
envoie une requêteGET
vers l’URL/api/message
-
response.json()
transforme la réponse reçue (format JSON) en un objet utilisable -
Ensuite, on peut utiliser les données retournées dans le code JS
-
En cas d’erreur (connexion impossible, mauvaise URL, etc.), le
.catch(...)
permet d’afficher un message d’erreur
3. Résultat dans la console du navigateur
Message du serveur :
fetch
fetch()
est une méthode très pratique pour connecter le JavaScript côté client avec les données du serveur.