FormData

FormData インターフェイスは、XMLHttpRequest.send() メソッドを用いることで簡単に送信が可能な、フォームフィールドおよびそれらの値から表現されるキーと値のペアのセットを簡単に構築する手段を提供します。これは、エンコーディングタイプを "multipart/form-data" に設定した場合にフォームが使用するものと同じ形式を使用します。

FormData を実装したオブジェクトは、entries() の代わりに for...of 構造の内部で直接使用できます。for (var p of myFormData)for (var p of myFormData.entries()) と等価です。

注記: この機能は Web Workers で使用できます。

コンストラクタ

FormData()
新しい FormData オブジェクトを作成します。

メソッド

FormData.append()
FormData オブジェクト内の既存のキーに新たな値を追加するか、キーが存在しない場合はキーを追加します。
FormData.delete()
FormData オブジェクトからキーと値のペアを削除します。
FormData.entries()
オブジェクトに含まれているすべてのキーと値のペアを走査できるようにするため、iterator を返します。
FormData.get()
FormData オブジェクトから、指定したキーに関連付けられた最初の値を返します。
FormData.getAll()
FormData から、指定したキーに関連付けられたすべての値の配列を返します。
FormData.has()
FormData オブジェクトがあるキーと値のペアを持っているかを示す真偽値を返します。
FormData.keys()
オブジェクト内に存在するキーと値のペアから、すべてのキーを走査できるようにするための iterator を返します。
FormData.set()
FormData オブジェクト内の既存のキーに新たな値を設定するか、キーが存在しない場合はキーと値のペアを追加します。
FormData.values()
オブジェクト内に存在するキーと値のペアから、すべての値を走査できるようにするための iterator を返します。

仕様

仕様書 策定状況 コメント
XMLHttpRequest
FormData の定義
現行の標準 XHR 仕様書で FormData を定義

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本機能のサポート 7[2] 4.0 (2.0)[1] 10 12 5
filename を伴う append (有) 22.0 (22.0) ? ? ?
delete(), get(), getAll(), has(), set() flag で制御 39.0 (39.0) 未サポート (有) 未サポート
entries(), keys(), values(), および for...of のサポート ? 44.0 (44.0) ? ? ?
Web Workers で使用可能 (有) 39.0 (39.0) 未サポート (有) 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
基本機能のサポート 3.0 ?[3] 4.0 (2.0)[1] 1.0.1 ? 12 ?
filename を伴う append ? ? 22.0 (22.0) 1.2 ? ? ?
delete(), get(), getAll(), has(), set() (有) (有) 未サポート 未サポート 未サポート (有) 未サポート
entries(), keys(), values(), および for...of のサポート ? ? 44.0 (44.0) 2.5 ? ? ?
Web Workers で使用可能 (有) (有) (有) (有) 未サポート (有) 未サポート

[1] Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 以前では、このオブジェクトに Blob 形式でデータを追加した場合、"Content-Disposition" HTTP ヘッダによって報告されるファイル名は空の文字列でした。複数の種類のサーバーでは、この挙動はエラーとなります。Gecko 7.0 より、ファイル名として "blob" が送信されます。

[2] Chrome では append 以外のメソッドのサポートを、"試験運用版のウェブ プラットフォームの機能を有効にする" フラグで制御しています。

[3] Android 4.0 の XHR は、blob を伴う FormData に空のコンテンツを送信します。

関連文書

ドキュメントのタグと貢献者

 このページの貢献者: yyss, ethertank, saneyuki_s
 最終更新者: yyss,