FormData
介面可為表單資料中的欄位/值建立相對應的的鍵/值對(key/value)集合,之後便可使用 XMLHttpRequest.send()
方法來送出資料。它在編碼類型設定為 multipart/form-data
時會採用與表單相同的格式送出。
實作 FormData
的物件可以直接利用 for...of
語法結構來替代 entries()
:for (var p of myFormData)
等同於 for (var p of myFormData.entries())
。
備註:此特性適用於 Web Workers。
建構式
FormData()
- 建立一個新的
FormData
物件。
方法
FormData.append()
- 追加新值到
FormData
物件已有的對應鍵上;若該鍵不存在,則為其追加新的鍵。 FormData.delete()
- 刪除指定的鍵值對。
FormData.entries()
- 回傳
iterator
,可用來處理物件中所有的鍵值對。 FormData.get()
- 回傳指定的鍵在
FormData
物件中找到的第一個對應值。 FormData.getAll()
- 回傳指定的鍵在
FormData
物件中所有對應值的陣列。 FormData.has()
- 回傳
FormData
物件是否含有指定鍵值對的布林值。 FormData.keys()
- 回傳
iterator
,可用來處理物件中所有鍵值對之中的鍵。 FormData.set()
- 為
FormData
物件已有的鍵設定新值;若該鍵不存在,則為其追加新的鍵。 FormData.values()
- 回傳
iterator
,可用來處理物件中所有鍵值對之中的值。
規範
Specification | Status | Comment |
---|---|---|
XMLHttpRequest The definition of 'FormData' in that specification. |
Living Standard | FormData defined in XHR spec |
瀏覽器相容性
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 7.0 | (Yes) | 4.0 (2.0)[1] | 10 | 12 | 5 |
append with filename | (Yes) | No support | 22.0 (22.0) | ? | (Yes) | (Yes) |
delete() , get() , getAll() , has() , set() |
50.0 | No support | 39.0 (39.0) | No support | (Yes) | No support |
entries() , keys() , values() , and support of for...of |
50.0 | No support | 44.0 (44.0) | ? | (Yes) | No support |
Available in web workers | (Yes) | (Yes) | 39.0 (39.0) | No support | (Yes) | No support |
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] | (Yes)[2] | (Yes) | 4.0 (2.0)[1] | 1.0.1 | ? | 12 | ? | (Yes) |
append with filename | ? | (Yes) | No support | 22.0 (22.0) | 1.2 | ? | ? | ? | (Yes) |
delete() , get() , getAll() , has() , set() |
(Yes) | 50.0 | No support | No support | No support | No support | No support | No support | 50.0 |
entries() , keys() , values() , and support of for...of |
? | 50.0 | No support | 44.0 (44.0) | 2.5 | ? | ? | ? | 50.0 |
Available in web workers | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | No support | (Yes) | No support | (Yes) |
[1] 在 Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 之前,若把 Blob
設定為物件中的值,則 HTTP 標頭中 "Content-Disposition" 的檔案名稱會是空字串,此行為會被某些伺服器視為錯誤。Gecko 7.0 之後則會將檔名設為 "blob" 送出。
[2] XHR in Android 4.0 sends empty content for FormData
with blob
.