FormData: set() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

set()FormData インターフェイスのメソッドで、FormData オブジェクト内の既存のキーに値を追加したり、存在しないキーと値の組を追加したりします。

set()append() の違いは、指定されたキーが既に存在した場合、set() は既存のすべての値を新しい値で上書きすることです。 一方、append() は、既存の値のセットの末尾に新しい値を追加します。

メモ: このメソッドはウェブワーカーで使用できます。

構文

js
set(name, value)
set(name, value, filename)

引数

name

value にあるデータのフィールド名です。

value

フィールドの値です。文字列または BlobFile などのサブクラスを含む)です。これらの何れでもないものが指定された場合、値は文字列に変換されます。

filename 省略可

第 2 引数に Blob または File を渡した場合に、サーバーに報告されるファイル名(文字列)です。Blob オブジェクトの既定のファイル名は "blob" です。File オブジェクトの既定値は、ファイルのファイル名です。

メモ: FormData オブジェクトに追加するデータとして Blob を指定した場合、"Content-Disposition" ヘッダーでサーバーに報告されるファイル名はブラウザーによって異なることがあります。

返値

なし (undefined)。

js
formData.set("username", "Chris");

値が Blob(または File)である場合、その名前を filename で指定することができます。

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

この値が文字列または Blob でない場合、set() は自動的にそれを文字列に変換します。

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

仕様書

Specification
XMLHttpRequest Standard
# dom-formdata-set

ブラウザーの互換性

BCD tables only load in the browser

関連情報