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

{{APIRef("XMLHttpRequest")}}

FormData 介面可為表單資料中的欄位/值建立相對應的的鍵/值對(key/value)集合,之後便可使用 {{domxref("XMLHttpRequest.send()")}} 方法來送出資料。它在編碼類型設定為 multipart/form-data 時會採用與表單相同的格式送出。

實作 FormData 的物件可以直接利用 {{jsxref("Statements/for...of", "for...of")}} 語法結構來替代 {{domxref('FormData.entries()', 'entries()')}}:for (var p of myFormData) 等同於 for (var p of myFormData.entries())

備註:此特性適用於 Web Workers

建構式

{{domxref("FormData.FormData","FormData()")}}
建立一個新的 FormData 物件。

方法

{{domxref("FormData.append()")}}
追加新值到 FormData 物件已有的對應鍵上;若該鍵不存在,則為其追加新的鍵。
{{domxref("FormData.delete()")}}
刪除指定的鍵值對。
{{domxref("FormData.entries()")}}
回傳 {{jsxref("Iteration_protocols","iterator")}},可用來處理物件中所有的鍵值對。
{{domxref("FormData.get()")}}
回傳指定的鍵在 FormData 物件中找到的第一個對應值。
{{domxref("FormData.getAll()")}}
回傳指定的鍵在 FormData 物件中所有對應值的陣列。
{{domxref("FormData.has()")}}
回傳 FormData 物件是否含有指定鍵值對的布林值。
{{domxref("FormData.keys()")}}
回傳 {{jsxref("Iteration_protocols", "iterator")}},可用來處理物件中所有鍵值對之中的鍵。
{{domxref("FormData.set()")}}
為 FormData 物件已有的鍵設定新值;若該鍵不存在,則為其追加新的鍵。
{{domxref("FormData.values()")}}
回傳 {{jsxref("Iteration_protocols", "iterator")}},可用來處理物件中所有鍵值對之中的值。

規範

Specification Status Comment
{{SpecName('XMLHttpRequest','#interface-formdata','FormData')}} {{Spec2('XMLHttpRequest')}} FormData defined in XHR spec

瀏覽器相容性

{{CompatibilityTable}}
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(7.0)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("2.0")}}[1] 10 12 5
append with filename {{CompatVersionUnknown}} {{CompatNo}} {{CompatGeckoDesktop("22.0")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
delete(), get(), getAll(), has(), set() {{CompatChrome(50.0)}} {{CompatNo}} {{CompatGeckoDesktop("39.0")}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}
entries(), keys(), values(), and support of for...of {{CompatChrome(50.0)}} {{CompatNo}} {{CompatGeckoDesktop("44.0")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatNo}}
Available in web workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("39.0")}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}
Feature Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 3.0[2] {{CompatVersionUnknown}}[2] {{CompatVersionUnknown}} {{CompatGeckoMobile("2.0")}}[1] 1.0.1 {{CompatUnknown}} 12 {{CompatUnknown}} {{CompatVersionUnknown}}
append with filename {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatGeckoMobile("22.0")}} 1.2 {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}}
delete(), get(), getAll(), has(), set() {{CompatVersionUnknown}} {{CompatChrome(50.0)}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatChrome(50.0)}}
entries(), keys(), values(), and support of for...of {{CompatUnknown}} {{CompatChrome(50.0)}} {{CompatNo}} {{CompatGeckoMobile("44.0")}} 2.5 {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatChrome(50.0)}}
Available in web workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatVersionUnknown}}

[1] 在 Gecko 7.0 {{geckoRelease("7.0")}} 之前,若把 {{domxref("Blob")}} 設定為物件中的值,則 HTTP 標頭中 "Content-Disposition" 的檔案名稱會是空字串,此行為會被某些伺服器視為錯誤。Gecko 7.0 之後則會將檔名設為 "blob" 送出。

[2] XHR in Android 4.0 sends empty content for FormData with blob.

參見