FormData: метод append()
Базовая поддержка Широко распространена
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в рабочих потоках.
Метод append() интерфейса FormData добавляет новое значение к существующему ключу внутри объекта FormData, или добавляет ключ, если он еще не существует.
Разница между set() и append() заключается в том, что если указанный ключ уже существует, set() перезапишет все существующие значения новым, а append() добавит новое значение в конец существующего набора значений.
Синтаксис
append(name, value) append(name, value, filename)
Параметры
name-
Имя поля, данные которого содержатся в
value. value-
Значение поля. Это может быть строка или
Blob(включая подклассы, такие какFile). Если ни один из них не указан, значение преобразуется в строку. filenameНеобязательно-
Имя файла, передаваемое серверу (строка), когда в качестве второго параметра передаётся
BlobилиFile. Значение по умолчанию дляBlobобъектов — "blob". Значение по умолчанию дляFileобъектов — имя файла.
Примечание: Если вы укажете Blob в качестве данных для добавления в объект FormData, имя файла, которое будет передано на сервер в заголовке "Content-Disposition", может отличаться в разных браузерах.
Возвращаемое значение
Ничего (undefined).
Примеры
formData.append("username", "Chris");
Когда значение является Blob (или File), вы можете указать его имя с помощью параметра filename:
formData.append("user-pic", myFileInput.files[0], "chris.jpg");
Как и с обычными данными формы, вы можете добавить несколько значений с одинаковым именем:
formData.append("user-pic", myFileInput.files[0], "chris1.jpg");
formData.append("user-pic", myFileInput.files[1], "chris2.jpg");
Если значение не является строкой или Blob, append() автоматически преобразует его в строку:
formData.append("name", true);
formData.append("name", 72);
formData.getAll("name"); // ["true", "72"]
Спецификации
| Спецификация |
|---|
| XMLHttpRequest # dom-formdata-append |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
append |
5 | 12 | 4В Firefox 7 и ранее, при указанииBlob в качестве данных для добавления в объект, имя файла, передаваемое в заголовке Content-Disposition HTTP, было пустой строкой, что приводило к ошибкам на некоторых серверах. Начиная с Firefox 7, имя файла blob отправляется. |
12 | 5 | 18 | 4В Firefox для Android 7 и ранее, при указанииBlob в качестве данных для добавления в объект, имя файла, передаваемое в заголовке Content-Disposition HTTP, было пустой строкой, что приводило к ошибкам на некоторых серверах. Начиная с Firefox для Android 7, имя файла blob отправляется. |
12 | 5 | 1.0 | 3XHR в Android 4.0 отправляет пустое содержимое дляFormData с blob. |
filename_parameter |
16 | 12 | 22 | ≤15 | 6 | 18 | 22 | ≤14 | 6 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FormData/append