diff options
| author | julieng <julien.gattelier@gmail.com> | 2021-10-02 17:20:14 +0200 |
|---|---|---|
| committer | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-10-02 17:30:20 +0200 |
| commit | c05efa8d7ae464235cf83d7c0956e42dc6974103 (patch) | |
| tree | 6ea911b2f2010f63a026de6bb7a1a51e7690a7e1 /files/fr/web/api/fetch/index.html | |
| parent | 13a5e017558b248ee1647d4a5825f183b51f09ad (diff) | |
| download | translated-content-c05efa8d7ae464235cf83d7c0956e42dc6974103.tar.gz translated-content-c05efa8d7ae464235cf83d7c0956e42dc6974103.tar.bz2 translated-content-c05efa8d7ae464235cf83d7c0956e42dc6974103.zip | |
move *.html to *.md
Diffstat (limited to 'files/fr/web/api/fetch/index.html')
| -rw-r--r-- | files/fr/web/api/fetch/index.html | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/files/fr/web/api/fetch/index.html b/files/fr/web/api/fetch/index.html deleted file mode 100644 index 30544929ec..0000000000 --- a/files/fr/web/api/fetch/index.html +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: GlobalFetch.fetch() -slug: Web/API/fetch -tags: - - API - - API Fetch - - Experimental - - Fetch - - GlobalFetch - - Méthode - - Reference - - WindowOrWorkerGlobalScope - - requête -translation_of: Web/API/WindowOrWorkerGlobalScope/fetch -original_slug: Web/API/WindowOrWorkerGlobalScope/fetch ---- -<p>{{APIRef("Fetch")}}</p> - -<p>La méthode <code><strong>fetch()</strong></code> du mixin {{domxref("WindowOrWorkerGlobalScope")}} démarre le chargement d'une ressource sur le réseau et retourne une promesse qui est résolue dès que la réponse est disponible. La promesse résoud l'objet {{domxref("Response")}} représentant la réponse de votre requête. Cette promesse n'échoue pas en cas d'erreur HTTP, elle n'échoue que sur les problèmes de réseau. Vous devez utiliser un gestionnaire <code>then</code> pour identifier les erreurs HTTP.</p> - -<p><code>WindowOrWorkerGlobalScope</code> est aussi bien implémenté par {{domxref("Window")}} que par {{domxref("WorkerGlobalScope")}}, ce qui signifie que la méthode <code>fetch()</code> est disponible dans la plupart des cas où vous pourriez en avoir besoin.</p> - -<p>Une promesse {{domxref("GlobalFetch.fetch","fetch()")}} n'est rejetée que quand un problème de réseau est rencontré, même si en réalité cela signifie généralement qu'il y a un problème de permissions ou quelque chose de similaire. La promesse ne sera pas rejetée en cas d'erreur HTTP (<code>404</code>, etc.) Pour cela, un gestionnaire <code>then()</code> doit vérifier que la propriété {{domxref("Response.ok")}} ait bien pour valeur <code>true</code> et/ou la valeur de la propriété {{domxref("Response.status")}}.</p> - -<p>La méthode <code>fetch()</code> est contrôlée par la directive <code>connect-src</code> de l'entête <a href="/fr/docs/Web/HTTP/Headers/Content-Security-Policy">Content Security Policy</a> plutôt que par la directive de la ressource qui est récupérée.</p> - -<div class="note"> -<p><strong>Note :</strong> Les paramètres de la méthode <code>fetch()</code> sont identiques à ceux du contructeur d'une {{domxref("Request.Request","Request()")}}.</p> -</div> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="syntaxbox">const <em>fetchResponsePromise</em> = Promise<Response> fetch(<em>entrée</em>[, <em>init</em>]);</pre> - -<h3 id="Paramètres">Paramètres</h3> - -<dl> - <dt><code><em>entrée</em></code></dt> - <dd>Définit la ressource que vous voulez obtenir. Cela peut être : - <ul> - <li>Un {{domxref("USVString")}} qui contient l'URL de la ressource à obtenir. Certains navigateurs acceptent <code>blob:</code> et <code>data:</code>.</li> - <li>Un objet {{domxref("Request")}}.</li> - </ul> - </dd> - <dt><code><em>init</em></code> {{optional_inline}}</dt> - <dd> - <p>Un objet qui contient les paramètres de votre requête. Les options possibles sont :</p> - - <dl> - <dt><code>method</code></dt> - <dd>La méthode de la requête, par exemple <code>GET</code> ou <code>POST</code>.</dd> - - <dt><code>headers</code></dt> - <dd>Les entêtes à ajouter à votre requête, contenues dans un objet {{domxref("Headers")}} ou dans un objet avec des {{domxref("ByteString")}} pour valeurs.</dd> - - <dt><code>body</code></dt> - <dd>Le corps de votre requête. Cela peut être un {{domxref("Blob")}}, un {{domxref("BufferSource")}}, un {{domxref("FormData")}}, un {{domxref("URLSearchParams")}}, ou un {{domxref("USVString")}}. Notez cependant qu'une requête avec <code>GET</code> ou <code>HEAD</code> pour méthode ne peut pas avoir de corps.</dd> - - <dt><code>mode</code></dt> - <dd>Le mode à utiliser pour cette requête, par exemple <code>cors</code>, <code>no-cors</code>, ou <code>same-origin.</code></dd> - - <dt><code>credentials</code></dt> - <dd>Les identifiants à utiliser pour cette requête : <code>omit</code>, <code>same-origin</code>, ou <code>include</code>. Pour envoyer automatiquement les cookies pour le domaine actuel, cette option doit être définie. À partir de Chrome 50, cette propriété peut aussi prendre un objet {{domxref("FederatedCredential")}} ou une instance de {{domxref("PasswordCredential")}}.</dd> - - <dt><code>cache</code></dt> - <dd>Le comportement du cache pour cette requête : <code>default</code>, <code>no-store</code>, <code>reload</code>, <code>no-cache</code>, <code>force-cache</code>, ou <code>only-if-cached</code>.</dd> - - <dt><code>redirect</code></dt> - <dd>Le mode de redirection à adopter pour cette requête : <code>follow</code> (suivre les redirections automatiquement), <code>error</code> (abandonner avec une erreur si une redirection a lieu), ou <code>manual</code> (gérer les redirections manuellement). Dans Chrome, la valeur par défaut était <code>follow</code> avant Chrome 47, mais à partir de cette version, c'est <code>manual</code>.</dd> - - <dt><code>referrer</code></dt> - <dd>Un USVString qui vaut <code>no-referrer</code>, <code>client</code>, ou qui contient une URL. La valeur par défaut est <code>client</code>.</dd> - - <dt><code>referrerPolicy</code></dt> - <dd>Spécifie la valeur de l'entête HTTP referer. Cela peut être <code>no-referrer</code>, <code>no-referrer-when-downgrade</code>, <code>origin</code>, <code>origin-when-cross-origin</code> ou <code>unsafe-url</code>.</dd> - - <dt><code>integrity</code></dt> - <dd>Contient la valeur de <a href="/fr/docs/Web/Security/Subresource_Integrity">l'intégrité de la sous-ressource</a> de la requête (par exemple, <code>sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=</code>).</dd> - - <dt><code>keepalive</code></dt> - <dd>Peut être utilisée pour autoriser la requête à se poursuivre après la fermeture de la page. Une requête avec ce paramètre est équivalente à l'API {{domxref("Navigator.sendBeacon()")}}.</dd> - - <dt><code>signal</code></dt> - <dd>Une instance de {{domxref("AbortSignal")}} vous permettant de communiquer avec une requête et de l'interrompre si vous le souhaitez via un {{domxref("AbortController")}}.</dd> - </dl> -</dd> -</dl> - -<h3 id="Valeur_retournée">Valeur retournée</h3> - -<p>Une {{domxref("Promise")}} qui se résoud avec un object {{domxref("Response")}}.</p> - -<h3 id="Exceptions">Exceptions</h3> - -<dl> - <dt><code>AbortError</code></dt> - <dd>La requête a été interrompue à cause d'un appel à la méthode {{domxref("AbortController.abort", "abort()")}} de {{domxref("AbortController")}}.</dd> - <dt><code>TypeError</code></dt> - <dd>L'URL spécifié inclut des identifiants. Ces informations devraient plutôt être fournises via l'en-tête HTTP {{HTTPHeader("Authorization")}}.</dd> -</dl> - -<h2 id="Exemple">Exemple</h2> - -<p>Dans notre <a href="https://github.com/mdn/fetch-examples/tree/gh-pages/fetch-request">exemple de requête avec fetch</a> (voir <a href="http://mdn.github.io/fetch-examples/fetch-request/">cet exemple en direct</a>) nous créons une nouvelle {{domxref("Request")}} avec le constructeur correspondant, puis on l'envoie en appellant <code>fetch()</code>. Comme nous récupérons une image, nous utilisons la méthode {{domxref("Body.blob()")}} sur la réponse pour lui donner le bon type MIME pour qu'elle soit gérée correctement, puis l'on crée l'URL correspondant à cet objet et on l'affiche dans un élément {{htmlelement("img")}}.</p> - -<pre class="brush: js">const monImage = document.querySelector('img'); - -let maRequete = new Request('fleurs.jpg'); - -fetch(maRequete) -.then(function(reponse) { - if (!response.ok) { - throw new Error(`erreur HTTP! statut: ${reponse.status}`); - } - return reponse.blob(); -}) -.then(function(reponse) { - let URLobjet = URL.createObjectURL(reponse); - monImage.src = URLobjet; -});</pre> - -<p>Dans notre <a href="https://github.com/mdn/fetch-examples/tree/gh-pages/fetch-with-init-then-request">exemple fetch avec initialisation et requête</a> (voir <a href="http://mdn.github.io/fetch-examples/fetch-with-init-then-request/">cet exemple en direct</a>) nous faisons la même chose à la différence que nous passons aussi un objet d'initalisation à la méthode <code>fetch</code> :</p> - -<pre class="brush: js">const monImage = document.querySelector('img'); - -let mesEntetes = new Headers(); -mesEntetes.append('Content-Type', 'image/jpeg'); - -const monInit = { method: 'GET', - headers: mesEntetes, - mode: 'cors', - cache: 'default' }; - -let maRequete = new Request('fleurs.jpg'); - -fetch(maRequete, monInit).then(function(reponse) { - ... -});</pre> - -<p>Notez que vous pouvez aussi passer l'objet d'initialisation au constructeur de la requête pour obtenir le même effet, par exemple :</p> - -<pre class="brush: js">let maRequete = new Request('fleurs.jpg', monInit);</pre> - -<p>Vous pouvez aussi utiliser un objet litéral comme en-têtes dans votre objet d'initalisation.</p> - -<pre class="brush: js">const monInit = { method: 'GET', - headers: { - 'Content-Type': 'image/jpeg' - }, - mode: 'cors', - cache: 'default' }; - -let maRequete = new Request('fleurs.jpg', monInit); -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('Fetch','#fetch-method','fetch()')}}</td> - <td>{{Spec2('Fetch')}}</td> - <td>Définie dans un <code>WindowOrWorkerGlobalScope</code> dans la nouvelle spécification.</td> - </tr> - <tr> - <td>{{SpecName('Fetch','#dom-global-fetch','fetch()')}}</td> - <td>{{Spec2('Fetch')}}</td> - <td>Définition initiale</td> - </tr> - <tr> - <td>{{SpecName('Credential Management')}}</td> - <td>{{Spec2('Credential Management')}}</td> - <td>Ajoute la possiblité d'utiliser une instance de {{domxref("FederatedCredential")}} ou de {{domxref("PasswordCredential")}} comme valeur de <code>init.credentials</code>.</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.WindowOrWorkerGlobalScope.fetch")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/Fetch_API">Fetch API</a></li> - <li><a href="/fr/docs/Web/API/Service_Worker_API">ServiceWorker API</a></li> - <li><a href="/fr/docs/HTTP/Access_control_CORS">HTTP access control (CORS)</a></li> - <li><a href="/fr/docs/HTTP">HTTP</a></li> -</ul> |
