Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

XMLHttpRequest : méthode send()

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Note : Cette fonctionnalité est disponible via les Web Workers, sauf pour les Service Workers.

La méthode send() de l'interface XMLHttpRequest envoie la requête au serveur.

Si la requête est asynchrone (ce qui est le cas par défaut), cette méthode retourne dès que la requête est envoyée et le résultat est livré par des évènements. Si la requête est synchrone, cette méthode ne retourne pas avant que la réponse ne soit arrivée.

send() accepte un paramètre optionnel qui vous permet de définir le corps de la requête ; cela est principalement utilisé pour des requêtes telles que PUT. Si la méthode de la requête est GET ou HEAD, le paramètre body est ignoré et le corps de la requête est défini sur null.

Si aucun en-tête Accept n'a été défini à l'aide de la méthode setRequestHeader(), un en-tête Accept avec le type "*/*" (tout type) est envoyé.

Syntaxe

js
send()
send(body)

Paramètres

body Facultatif

Un corps de données à envoyer dans la requête XHR. Cela peut être :

Si aucune valeur n'est définie pour le corps, une valeur par défaut de null est utilisée.

La meilleure façon d'envoyer du contenu binaire (par exemple, lors de l'envoi de fichiers) est d'utiliser un objet TypedArray, un objet DataView ou un objet Blob en conjonction avec la méthode send().

Valeur de retour

Aucune (undefined).

Exceptions

InvalidStateError DOMException

Levée si send() a déjà été invoquée pour la requête, et/ou celle-ci est complète.

NetworkError DOMException

Levée si le type de ressource à récupérer est un Blob, et que la méthode n'est pas GET.

Exemple : GET

js
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server", true);

xhr.onload = () => {
  // Requête finie, traitement ici.
};

xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);

Exemple : POST

js
const xhr = new XMLHttpRequest();
xhr.open("POST", "/server", true);

// Envoie les informations du header adaptées avec la requête
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = () => {
  // Appelle une fonction au changement d'état.
  if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    // Requête finie, traitement ici.
  }
};
xhr.send("toto=truc&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);

Spécifications

Spécification
XMLHttpRequest
# the-send()-method

Compatibilité des navigateurs

Voir aussi