FormData: set() 方法

Baseline 已廣泛支援

此特性已成熟穩定,適用於多種裝置和瀏覽器版本。自 2018 年 10 月起,它已在各瀏覽器中可用。

注意:此功能在 Web Workers 中可用。

FormData 介面的 set() 方法用於在 FormData 物件中設定一個已存在鍵的新值,或者在鍵不存在時新增該鍵/值對。

set()append() 的區別在於,如果指定的鍵已存在,set() 會用新值覆蓋所有現有值,而 append() 會將新值新增到現有值集的末尾。

語法

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

引數

name

包含 value 中資料的欄位的名稱。

value

欄位的值。可以是字串或 Blob(包括 File 等子類)。如果未指定任何這些型別,則會將值轉換為字串。

filename 可選

當將 BlobFile 作為第二個引數傳遞時,報告給伺服器的欄位名(字串)。Blob 物件的預設檔名是 "blob"。 File 物件的預設檔名是檔案的名稱。

注意: 如果將 Blob 指定為要新增到 FormData 物件的資料,那麼在 "Content-Disposition" 頭部報告給伺服器的檔名在不同瀏覽器之間可能會有所不同。

返回值

無(undefined)。

示例

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

當值是 Blob(或 File)時,你可以使用 filename 引數指定其名稱。

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

如果值不是字串或 Blobset() 會自動將其轉換為字串。

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

規範

規範
XMLHttpRequest
# dom-formdata-set

瀏覽器相容性

另見