--- title: FormData slug: Web/API/FormData translation_of: Web/API/FormData ---

{{APIRef("XMLHttpRequest")}}

A interface FormData fornece uma maneira fácil de construir um conjunto de pares chave/valor representando campos de um elemento form e seus valores, os quais podem ser facilmente enviados utilizado o método send() do XMLHttpRequest. Essa interface utiliza o mesmo formato que um form utilizaria se o tipo de codificação estivesse configurado como "multipart/form-data".

Um objeto FormData pode ser usado diretamente em uma estrutura {{jsxref("Statements/for...of", "for...of")}} em vez de {{domxref('FormData.entries()', 'entries()')}}: for (var p of myFormData) é o mesmo que for (var p of myFormData.entries()).

Nota: Esse recurso está disponível em https://developer.mozilla.org/pt-BR/docs/Web/API/Web_Workers_API

Construtor

{{domxref("FormData.FormData","FormData()")}}
Cria um novo objeto FormData.

Métodos

{{domxref("FormData.append")}}
Acrescenta um novo valor em uma chave existente dentro de um objeto FormData, ou adiciona a chave se ela ainda não existir.
{{domxref("FormData.delete")}}
Apaga um par chave/valor de um objeto FormData.
{{domxref("FormData.get")}}
Retorna o primeiro valor associado com uma dada chave de dentro de um objeto FormData.
{{domxref("FormData.getAll")}}
Retorna uma matriz de todos os valores associados a uma determinada chave de dentro de um FormData.
{{domxref("FormData.has")}}
Retorna um valor boleano indicando se um objeto FormData contém um certo par chave/valor.
{{domxref("FormData.set")}}
Define um novo valor para uma chave existente dentro de um objeto FormData, ou adiciona a chave/valor se ele ainda não existir.

Nota: Para ser claro, a diferença entre {{domxref("FormData.set()")}} e {{domxref("FormData.append()")}} é que, se a chave especificada não existir, {{domxref("FormData.set()")}} irá substituir o valor existente por um novo, enquanto {{domxref("FormData.append()")}} irá acrescentar um novo valor no final dos valores existentes. Veja as suas páginas dedicadas para código de exemplo.

Especificações

Especificação Status Comentário
{{SpecName('XMLHttpRequest','#interface-formdata','FormData')}} {{Spec2('XMLHttpRequest')}} FormData definido na especificação XHR

Compatibilidade com navegadores

{{CompatibilityTable}}
Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico 7+ {{CompatGeckoDesktop("2.0")}} 10+ 12+ 5+
append com filename {{CompatVersionUnknown}} {{CompatGeckoDesktop("22.0")}} 10+ {{CompatUnknown}} {{CompatUnknown}}
delete, get, getAll, has, set Behind Flag {{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}
Característica Android Chrome for Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico 3.0 {{CompatUnknown}} {{CompatGeckoMobile("2.0")}} 1.0.1 {{CompatUnknown}}

12+

{{CompatUnknown}}
append com filename {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop("22.0")}} 1.2 {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
delete, get, getAll, has, set {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}

Nota: XHR in Android 4.0 envia conteúdo vazio para o FormData com blob.

Nota: Suporte do Chrome aos métodos que não seja append está atualmente atrás da bandeira "Enable Experimental Web Platform Features".

Notas da Gecko

Antes do Gecko 7.0 {{geckoRelease("7.0")}}, se você especificasse um {{domxref("Blob")}} como o dado a ser anexado ao objeto, o nome do arquivo relatado no cabeçalho HTTP "Content-Disposition" era uma string vazia; isso resultou em erros sendo relatados por alguns servidores. Começando em Gecko 7.0, o nome do arquivo "blob" é enviado.

Veja também