recursal/MDN huggingface dataset:
FormData.append()
=================

La méthode **`append()`** de l'interface `FormData` ajoute une nouvelle valeur à une clé existante dans un objet `FormData`, ou rajoute cette clé et cette valeur quand elle n'existe pas.

La différence entre `FormData.set` et `append()` est que, quand la clé existe, `FormData.set` va remplacer les valeurs existantes avec la nouvelle alors qu' `append()` va rajouter celle-ci à la fin de l'ensemble des valeurs existantes.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------

Il y a deux versions de cette méthode : avec deux ou trois paramètres


```js
formData.append(name, value);
formData.append(name, value, filename);
```

### Paramètres

`name`

Le nom de la clé dont les données sont contenues dans `value`.

`value`

La valeur du champ clé. Elle peut être une `USVString` ou un `Blob` (incluant les sous-classes comme `File`).

`filename` Facultatif

Le nom du fichier envoyé au serveur (a `USVString`), quand un `Blob` ou un `File` est passé en second paramètre. Le nom du fichier par défaut pour des objets `Blob` est "blob". Le nom du fichier par défaut pour des objets `File` est le nom du fichier de l'objet.


**Note :** Si vous spécifiez un `Blob` comme donnée rattachée à un objet de type `FormData`, le nom de fichier envoyé au serveur sera dans l'entête "Content-Disposition" mais peut varier selon le navigateur.

### Retours

Void.

Exemple
-------

La ligne suivante crée un objet `FormData` vide :


```js
var formData = new FormData(); // Actuellement vide
```


Vous pouvez rajouter des paires clé/valeur en utilisant `FormData.append`:


```js
formData.append("username", "Chris");
formData.append("userpic", myFileInput.files[0], "chris.jpg");
```


Comme pour un formulaire classique, vous pouvez ajouter plusieurs valeurs pour la même clé. Par exemple ( et pour être en accord avec les conventions de nommage PHP, on ajoute [] au nom de la clé):


```js
formData.append("userpic[]", myFileInput.files[0], "chris1.jpg");
formData.append("userpic[]", myFileInput.files[1], "chris2.jpg");
```


Cette technique permet de simplement gérer l'envoi de plusieurs fichiers avec l'envoi d'une structure facilement itérable.

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-append |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest
* Utiliser les objets FormData
* `<form>`
FormData.getAll()
=================

La méthode **`getAll()`** de l'interface `FormData` renvoie toutes les valeurs associées à une clé donnée à partir d'un objet `FormData`.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.getAll(name);
```

### Paramètres

`name`

Un `USVString` représentant le nom de la clé que vous voulez récupérer.

### Retours

Un tableau de `FormDataEntryValue` (en-US) dont la clé correspond à la valeur passée dans le paramètre `name`. Si la clé n'existe pas, la méthode renvoie une liste vide.

Exemple
-------

La ligne suivante crée un objet `FormData` vide :


```js
var formData = new FormData();
```


Si nous ajoutons deux valeurs `username` en utilisant `FormData.append` :


```js
formData.append("username", "Chris");
formData.append("username", "Bob");
```


La fonction `getAll()` suivante va retourner chaque valeurs de `username` dans un tableau :


```js
formData.getAll("username"); // Returns ["Chris", "Bob"]
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-getall |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest (en-US)
* Utiliser les objets FormData
* `<form>`
FormData.values()
=================

La méthode **`FormData.values()`** renvoie une `itération` permettant de passer en revue toutes les valeurs contenues dans cet objet. Les valeurs sont des objets `USVString` ou `Blob`.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.values();
```

### Valeur de retour

Retourne une `itération` .

Exemple
-------


```js
// Créer un objet FormData test
var formData = new FormData();
formData.append("cle1", "valeur1");
formData.append("cle2", "valeur2");

// Affiche les valeurs
for (var value of formData.values()) {
  console.log(value);
}
```


Le résultat est :
```

valeur1
valeur2
```

Spécifications
--------------

#### No specification found

No specification data found for `api.FormData.values`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest
* Utiliser les objets FormData
* `<form>`
FormData.set()
==============

La méthode `set()` de l'interface `FormData` définit une nouvelle valeur pour une clé existante dans un objet `FormData`, ou ajoute la clé/valeur si elle n'existe pas encore.

La différence entre `set()` et `FormData.append` est que si la clé spécifiée existe déjà, `set()` écrasera toutes les valeurs existantes avec la nouvelle, tandis que `FormData.append` ajoutera la nouvelle valeur à la fin de l'ensemble de valeurs existant.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------

Il existe deux versions de cette méthode : une version à deux et une version à trois paramètres :


```js
formData.set(name, value);
formData.set(name, value, filename);
```


#### Paramètres

`name`

Le nom du champ dont les données sont contenues en valeur (`value`).

`value`

La valeur du champ. Il peut s'agir d'un `USVString` ou d'un `Blob` (y compris les sous-classes telles que `File`). Si aucune de ces sous-classes n'est spécifiée, la valeur est convertie en une chaîne de caractères.

`filename` Facultatif

Le nom de fichier communiqué au serveur (un `USVString`), lorsqu'un `Blob` ou un `File` est passée comme deuxième paramètre. Le nom de fichier par défaut pour les objets `Blob` est "blob". Le nom de fichier par défaut pour les objets `File` est le nom du fichier.


**Note :** Si vous spécifiez un `Blob` comme donnée à ajouter à l'objet FormData, le nom du fichier qui sera rapporté au serveur dans l'en-tête "Content-Disposition" utilisé pour varier d'un navigateur à l'autre.

Exemple
-------

La ligne suivante crée un objet `FormData` vide:


```js
var formData = new FormData(); // Actuellement vide
```


Vous pouvez définir des paires clé/valeur à ce sujet en utilisant `FormData.set` :


```js
formData.set("username", "Chris");
formData.set("userpic", myFileInput.files[0], "chris.jpg");
```


Si la valeur envoyée est différente de String ou Blob, elle sera automatiquement convertie en `String` :


```js
formData.set("name", 72);
formData.get("name"); // "72"
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-set |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest
* Utiliser les objets FormData
* `<form>`
FormData()
==========

Le constructeur **`FormData()`** crée un nouvel objet `FormData`.

**Note :** Cette fonctionnalité est disponible dans Web Workers.

Syntaxe
-------


```js
var formData = new FormData(form);
```

### Paramètres

`form` Facultatif

Un element HTML `<form>` — quand il est spécifié, l'objet `FormData` sera rempli avec les clés/valeurs du formulaire en utilisant les noms de propriétés de chaque élément pour clé et les valeurs soumises. Cela encodera aussi le contenu des fichiers.

Exemples
--------

La ligne suivante crée un objet `FormData` vide:


```js
var formData = new FormData(); // Formulaire vide à cet instant
```


Vous pouvez ajouter un couple clé/valeur en utilisant `FormData.append` :


```js
formData.append("username", "Chris");
```


Ou vous pouvez spécifier l'argument optionnel `form` à la création de l'objet `FormData` pour le pré-remplir avec les valeurs issues du formulaire spécifié :


```html
<form id="myForm" name="myForm">
  <div>
    <label for="username">Enter name:</label>
    <input type="text" id="username" name="username" />
  </div>
  <div>
    <label for="useracc">Enter account number:</label>
    <input type="text" id="useracc" name="useracc" />
  </div>
  <div>
    <label for="userfile">Upload file:</label>
    <input type="file" id="userfile" name="userfile" />
  </div>
  <input type="submit" value="Submit!" />
</form>
```


**Note :** Seuls les champs de formulaires valides sont inclus dans un objet FormData, c'est-à-dire ceux qui portent un nom (attribut `name`), qui ne sont pas désactivés et qui sont cochés (boutons radio et cases à cocher) ou sélectionnés (une ou plusieurs options dans une sélection).


```js
var myForm = document.getElementById("myForm");
formData = new FormData(myForm);
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Manipuler `XMLHttpRequest` (en-US)
* Utiliser les objets `FormData` (en-US)
* `<form>`
FormData.keys()
===============

La méthode `FormData.keys()` renvoie une `itération` permettant de parcourir toutes les clés contenues dans cet objet. Les clés sont des objets `USVString`.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.keys();
```

### Valeur de retour

Retourne une `itération`.

Exemple
-------


```js
// Créer un object FormData test
var formData = new FormData();
formData.append("cle1", "valeur1");
formData.append("cle2", "valeur2");

// Affiche les clés
for (var key of formData.keys()) {
  console.log(key);
}
```


Le résultat est :
```

cle1
cle2
```

Spécifications
--------------

#### No specification found

No specification data found for `api.FormData.keys`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest
* Utiliser les objets FormData
* `<form>`
FormData.has()
==============

La méthode **`has()`** de l'interface `FormData` renvoie un booléen indiquant si un objet `FormData` contient une certaine clé.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.has(name);
```

### Paramètres

`name`

Un `USVString` représentant le nom de la clé que vous voulez tester.

### Retours

Un `Boolean` (en-US).

Exemple
-------

La ligne suivante crée un objet `FormData` vide :


```js
var formData = new FormData();
```


L'extrait suivant montre les résultats des tests effectués pour vérifier l'existence d'un `username` dans l'objet FormData, avant et après avoir ajouté une valeur `username` avec `FormData.append` :


```js
formData.has("username"); // Retourne false
formData.append("username", "Chris");
formData.has("username"); // Retourne true
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-has |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utilisation de XMLHttpRequest
* Utilisation des objects FormData
* `<form>`
FormData.get()
==============

La méthode **`get()`** de l'interface `FormData` renvoie la première valeur associée à une clé donnée dans un objet `FormData`. Si vous souhaitez manipuler plusieurs valeurs et les récupérer intégralement, utilisez plutôt la méthode `getAll()`.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.get(name);
```

### Paramètres

`name`

Une chaîne de caractères `USVString` représentant le nom de la clé que vous souhaitez retrouver.

### Valeur de retour

Un objet `FormDataEntryValue` (en-US) contenant la valeur. Si la clé n'existe pas, la méthode renvoie `null`.

Exemple
-------

La ligne suivante crée un objet `FormData` vide :


```js
var formData = new FormData();
```


Si nous ajoutons deux valeurs `username` en utilisant `FormData.append` :


```js
formData.append("username", "Chris");
formData.append("username", "Bob");
```


L'appel suivant à `get()` renverra uniquement la première valeur `username` indexée :


```js
formData.get("username"); // Renvoie "Chris"
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-get |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest (en-US)
* Utiliser les objets `FormData`
* `<form>`
FormData.delete()
=================

La méthode **`delete()`** de l'interface `FormData` supprime une clé et sa (ses) valeur(s) d'un objet `FormData`.

**Note :** Cette méthode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.delete(name);
```

### Paramètres

`name`

Le nom de la clé que vous voulez supprimer.

### Retours

Void.

Exemple
-------

La ligne suivante crée un objet `FormData` vide et le pré-remplit avec les paires clé/valeur d'un formulaire :


```js
var formData = new FormData(myForm);
```


Vous pouvez supprimer les clés et leurs valeurs en utilisant `delete()`:


```js
formData.delete("username");
```

Spécifications
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # dom-formdata-delete |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest (en-US)
* Utiliser les objets FormData
* `<form>`
FormData.entries()
==================

 La methode **FormData.entries()** retourne un `iterateur` permettant d'accéder aux paires clefs/valeurs contenues dans cet objet.
 La clef de chaque paire est une `USVString`. De la même manière, la valeur peut être une `USVString` ou un `Blob`.

**Note :** Cette methode est disponible dans les Web Workers.

Syntaxe
-------


```js
formData.entries();
```

### Valeur retournée

Retourne un `iterateur`.

Exemple
-------


```js
// Creation d'un objet FormData
var formData = new FormData();
formData.append("key1", "value1");
formData.append("key2", "value2");

// Affichage des paires clefs/valeurs
for (var pair of formData.entries()) {
  console.log(pair[0] + ", " + pair[1]);
}
```


Le resultat est:
```

key1, value1
key2, value2
```

Spécifications
--------------

#### No specification found

No specification data found for `api.FormData.entries`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `XMLHTTPRequest`
* Utiliser XMLHttpRequest (en-US)
* Utiliser les objets FormData
* `<form>`
WebSocket.binaryType
====================

La propriété **`WebSocket.binaryType`** contrôle le type de données binaires reçues via la connexion WebSocket.

Syntaxe
-------


```js
var binaryType = aWebSocket.binaryType;
```

Valeur
------

Une chaîne de caractères `DOMString` ayant l'une de ces deux valeurs :

`"blob"`

Utilise des objets `Blob` pour les données binaires. Il s'agit de la valeur par défaut.

`"arraybuffer"`

Utilise des objets `ArrayBuffer` pour les données binaires.

Exemples
--------


```js
// On crée une connexion WebSocket connection.
const socket = new WebSocket("ws://localhost:8080");
// On change le type de données binaires de "blob" à "arraybuffer"
socket.binaryType = "arraybuffer";

// On écoute les différents messages
socket.addEventListener("message", function (event) {
  if (event.data instanceof ArrayBuffer) {
    // Frame de données binaires
    const view = new DataView(event.data);
    console.log(view.getInt32(0));
  } else {
    // Frame textuelle
    console.log(event.data);
  }
});
```

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # ref-for-dom-websocket-binarytype① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
WebSocket : évènement open
==========================

L'évènement `open` est déclenché lorsqu'une connexion avec une `WebSocket` est ouverte.

|  |  |
| --- | --- |
| Bouillonne/Remonte | Non |
| Annulable | Non |
| Interface | `Event` |
| Propriété de gestionnaire d'évènement correspondante | `onopen` |

Exemples
--------


```js
// Crée une connexion WebSocket
const socket = new WebSocket("ws://localhost:8080");

// La connexion est ouverte
socket.addEventListener("open", (event) => {
  socket.send("Coucou serveur !");
});
```

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # dom-websocket-onopen |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* WebSocket : évènement `close`
* WebSocket : évènement `error`
* WebSocket : évènement `message`
* Écrire des applications clientes WebSocket
WebSocket : évènement error
===========================

L'évènement `error` est déclenché lorsqu'une connexion avec une `WebSocket` a été fermée à cause d'une erreur (par exemple lorsque des données n'ont pu être envoyées).

|  |  |
| --- | --- |
| Bouillonne/Remonte | Non |
| Annulable | Non |
| Interface | `Event` |
| Propriété de gestionnaire d'évènement correspondante | `onerror` |

Exemples
--------


```js
// On crée une connexion WebSocket
const socket = new WebSocket("ws://localhost:8080");

// On écoute les éventuelles erreurs
socket.addEventListener("error", function (event) {
  console.log("Erreur WebSocket : ", event);
});
```

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # dom-websocket-onerror |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* WebSocket : évènement `close`
* WebSocket : évènement `message`
* WebSocket : évènement `open`
* Écrire des applications clientes WebSocket
WebSocket()
===========

Le constructeur **`WebSocket()`** renvoie un nouvel objet `WebSocket`.

Syntaxe
-------


```js
var aWebSocket = new WebSocket(url [, protocols]);
```

### Paramètres

`url`

L'URL à laquelle se connecter. Cela devrait être l'URL à laquelle le serveur WebSocket répondra.

`protocols` Facultatif

Une valeur qui est une chaîne de caractères représentant un seul protocole ou un tableau de chaînes de caractères représentant une liste de protocoles. Ces chaînes de caractères indiquent des sous-protocoles : un serveur donné pourra implémenter différents sous-protocoles WebSocket (on peut vouloir qu'un serveur soit capable de gérér différents types d'interaction selon le `protocol` indiqué). Si cette valeur est absence, c'est un tableau vide qui est utilisé par défaut : `[]`.

### Exceptions levées

`SECURITY_ERR`

Le port ciblé par la tentative de connexion est bloqué.

SyntaxError

L'URL est invalide.

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # ref-for-dom-websocket-websocket① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
WebSocket.readyState
====================

La propriété en lecture seule **`WebSocket.readyState`** renvoie l'état courant de la connexion `WebSocket`.

Syntaxe
-------


```js
var readyState = uneWebSocket.readyState;
```

Valeur
------

Cette propriété peut valoir l'une des valeurs de type `unsigned short` suivantes :

|  |  |  |
| --- | --- | --- |
| Valeur | État | Description |
| `0` | `CONNECTING` | La socket a été créée. La connexion n'est pas encore ouverte. |
| `1` | `OPEN` | La connexion est ouverte et prête pour la communication. |
| `2` | `CLOSING` | La connexion est en cours de fermeture. |
| `3` | `CLOSED` | La connexion est fermée ou n'a pas pu être ouverte. |

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # ref-for-dom-websocket-readystate① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
WebSocket.send()
================

La méthode **`WebSocket.send()`** rajoute les données indiquées à la queue pour transmission au serveur via la connexion WebSocket, augmentant ainsi la valeur de `bufferedAmount` du nombre d'octets nécessaires pour les données. Si les données ne peuvent être envoyées (par exemple parce qu'elles doivent être mises en tampon mais que la mémoire tampon est pleine), la socket est fermée automatiquement.

Syntaxe
-------


```js
WebSocket.send("Coucou serveur !");
```

### Paramètres

`data`

Les données à envoyer au serveur. La valeur peut avoir un des types suivants :

`USVString`

Une chaîne de caractères. Cette chaîne est ajoutée au tampon au format UTF-8 et la valeur de `bufferedAmount` est augmentée du nombre d'octets nécessaires pour représenter cette chaîne de caractères UTF-8.

`ArrayBuffer`

Les données binaires peuvent aussi être envoyées avec un tableau typé. Son contenu binaire est mis en tampon et la valeur de `bufferedAmount` est augmentée du nombre d'octets nécessaires.

`Blob`

Lorsqu'une valeur `Blob` est fournie, les données brutes du blob sont rajoutées à la queue pour être transmises dans une

*frame*

binaire. La valeur de `bufferedAmount` est augmentée du nombre d'octets utilisés pour représenter ces données brutes.

`ArrayBufferView` (en-US)

Il est possible d'envoyer n'importe quel objet étant un tableau typé JavaScript sous la forme d'une

*frame*

binaire. Le contenu des données binaires est rajouté à la queue dans le tampon et la valeur de `bufferedAmount` est augmentée du nombre d'octets correspondant.


### Exceptions levées

`INVALID_STATE_ERR`

La connexion n'est pas ouverte actuellement.

`SYNTAX_ERR`

Les données sont une chaîne de caractères pour laquelle il existe des

*surrogates*

non appairés.


**Note :** Pour Gecko 6.0, l'implémentation de `send()` varie de la spécification : le moteur renvoie un booléen indiquant si la connexion est toujours ouverte (par extension, cela indique si les données ont été correctement rajoutées à la queue ou transmises). Ce comportement a été corrigé avec Gecko 8.0.

Avec Gecko 11.0, la prise en charge des `ArrayBuffer` est implémentée mais pas celle pour les objets `Blob`.

Spécifications
--------------

| Specification |
| --- |
| WebSockets Standard # ref-for-dom-websocket-send① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.