L'API Fetch est une interface moderne basée sur des promesses en JavaScript utilisée pour effectuer des requêtes HTTP. Il simplifie le processus de récupération des ressources d'un serveur, en remplaçant les anciennes méthodes telles que XMLHttpRequest. Fetch fournit une approche plus propre et plus lisible pour gérer les demandes et les réponses du réseau, prenant en charge des fonctionnalités telles que les promesses, le streaming et l'async/await.
fetch(url, options) .then(response => { // Handle the response }) .catch(error => { // Handle errors });
Récupérer les valeurs par défaut avec la méthode GET.
Exemple :
fetch("https://jsonplaceholder.typicode.com/posts") .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => console.log("Data:", data)) .catch(error => console.error("Error:", error));
Pour envoyer des données à un serveur, utilisez la méthode POST avec la propriété body dans l'objet options.
Exemple :
fetch("https://jsonplaceholder.typicode.com/posts", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ title: "foo", body: "bar", userId: 1, }), }) .then(response => response.json()) .then(data => console.log("Response:", data)) .catch(error => console.error("Error:", error));
La fonction fetch accepte un objet d'options pour configurer les requêtes :
Option | Description |
---|---|
method | HTTP method (e.g., GET, POST, PUT, DELETE). |
headers | Object containing request headers. |
body | Data to send with the request (e.g., JSON, form data). |
credentials | Controls whether cookies are sent with the request (include, same-origin). |
6. Gestion des réponses
Method | Description |
---|---|
response.text() | Returns response as plain text. |
response.json() | Parses the response as JSON. |
response.blob() | Returns response as a binary Blob. |
response.arrayBuffer() | Provides response as an ArrayBuffer. |
Exemple : Récupération de JSON
fetch(url, options) .then(response => { // Handle the response }) .catch(error => { // Handle errors });
Async/await simplifie la gestion des promesses dans Fetch.
Exemple :
fetch("https://jsonplaceholder.typicode.com/posts") .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => console.log("Data:", data)) .catch(error => console.error("Error:", error));
Contrairement à XMLHttpRequest, Fetch ne rejette pas une promesse pour les erreurs HTTP. Vous devez vérifier la propriété ok ou le code d'état de la réponse.
Exemple :
fetch("https://jsonplaceholder.typicode.com/posts", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ title: "foo", body: "bar", userId: 1, }), }) .then(response => response.json()) .then(data => console.log("Response:", data)) .catch(error => console.error("Error:", error));
Fetch ne prend pas en charge nativement les délais d'attente des requêtes. Vous pouvez implémenter un délai d'attente en utilisant Promise.race().
Exemple :
fetch("https://api.example.com/data") .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error("Error:", error));
Feature | Fetch API | XMLHttpRequest |
---|---|---|
Syntax | Promise-based, simpler, cleaner. | Callback-based, verbose. |
Error Handling | Requires manual handling of HTTP errors. | Built-in HTTP error handling. |
Streaming | Supports streaming responses. | Limited streaming capabilities. |
Modern Features | Works with Promises, async/await. | No built-in Promise support. |
Fetch est idéal pour les projets de développement Web modernes.
Il s'intègre parfaitement avec Promises et async/await.
Utilisez-le lorsque vous avez besoin d'un code plus propre et plus maintenable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!