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
send()
send(body)
Paramètres
bodyFacultatif-
Un corps de données à envoyer dans la requête XHR. Cela peut être :
- Un objet
Document, dans lequel cas il est sérialisé avant d'être envoyé. - Un objet
XMLHttpRequestBodyInit, qui, selon la spécification Fetch (angl.), peut être unBlob, unArrayBuffer, unTypedArray, unDataView, unFormData, unURLSearchParams, ou une chaîne de caractères. null
Si aucune valeur n'est définie pour le corps, une valeur par défaut de
nullest utilisée. - Un objet
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
InvalidStateErrorDOMException-
Levée si
send()a déjà été invoquée pour la requête, et/ou celle-ci est complète. NetworkErrorDOMException-
Levée si le type de ressource à récupérer est un Blob, et que la méthode n'est pas
GET.
Exemple : GET
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
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> |