La fonction fetch() permet de récupérer des données depuis un serveur sans recharger la page — fondement des interfaces modernes et des IA génératives.
fetch() est une fonction JavaScript moderne utilisée pour récupérer des données depuis un serveur. Elle remplace progressivement XMLHttpRequest grâce à sa syntaxe plus claire basée sur les Promises.
// Récupérer un fichier JSON depuis le serveur fetch("data.json") .then(response => response.json()) .then(data => { console.log(data); }) .catch(err => { console.error("Erreur :", err); });
Les étapes de ce code :
fetch().json() désérialise la réponse en objet JavaScript.catch() intercepte toute erreur réseaufetch peut appeler un script PHP qui retourne du HTML ou du JSON :
// Appel d'un script PHP — réponse HTML injectée dans le DOM fetch("api.php") .then(r => r.text()) .then(html => { document.getElementById("zone").innerHTML = html; });
<?php // api.php — retourner du JSON header('Content-Type: application/json; charset=utf-8'); echo json_encode([ 'status' => 'ok', 'message' => 'Bonjour depuis PHP', 'time' => date('H:i:s'), ]); ?>
La syntaxe async/await rend le code asynchrone lisible comme du code synchrone :
async function loadData() { try { const response = await fetch("api.php"); // Vérifier le statut HTTP avant de lire if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); console.log(data); } catch (err) { console.error("Erreur :", err.message); } }
response.ok manuellement.
Simulez un appel fetch() — choisissez une URL prédéfinie ou saisissez la vôtre :
Les interfaces générées par IA (chatbots, assistants, outils web) reposent massivement sur fetch() pour communiquer avec leurs backends en temps réel.
// Envoyer un message à un endpoint IA const res = await fetch("/api/chat", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ prompt: "Explique fetch()" }), }); const data = await res.json();
| Critère | fetch() | XMLHttpRequest |
|---|---|---|
| Syntaxe | Moderne, concise | Verbeuse, callbacks |
| Basé sur Promises | ✓ Oui | ✗ Non (callbacks) |
| Support async/await | ✓ Natif | ✗ Wrapper nécessaire |
| Streaming réponse | ✓ ReadableStream | ✗ Limité |
| Erreurs HTTP auto | ✗ Vérifier response.ok | ✗ Vérifier status |
| Support navigateurs | ✓ 98%+ | ✓ 100% (très ancien) |
| Recommandé en 2024 | ✓ Oui | ✗ Déprécié |