FormData.set()

set() 方法会对 FormData 对象里的某个 key 设置一个新的值,如果该 key 不存在,则添加。

set() 和 FormData.append 不同之处在于:如果某个 key 已经存在,set() 会直接覆盖所有该 key 对应的值,而 FormData.append 则是在该 key 的最后位置再追加一个值。

注意: 该方法在 Web Workers 可用。

语法

该方法有两种使用方式,一个是传入两个参数,一个是传入三个参数。

formData.set(name, value);
formData.set(name, value, filename);

参数

name
字段名称。
value
字段的值,如果是传入两个参数的方式,那么该值是一个 USVString,如果不是,将被转成一个字符串。如果是传入三个参数的方式,那么该值将是一个布尔值(Blob),文件(File),或者一个 USVString,如果不是,将被转成一个字符串。
filename 可选
传给服务器的文件名称(一个USVString)。当第二个参数是一个布尔值(Blob)或者文件(File)的时候,Blob 对象的默认文件名是 "blob"。

注意: 如果对 FormData 对象插入一个布尔值( Blob),那么发送给服务器的请求头部(header) 里的 “Content-Disposition” 里的文件名称将会根据浏览器的不同而不同。

示例

先创建一个空的 FormData 对象:

var formData = new FormData(); // Currently empty

使用 FormData.set 设置键/值 :

formData.set('username', 'Chris');
formData.set('userpic', myFileInput.files[0], 'chris.jpg');

规范

规范 状态 说明
XMLHttpRequest
set()
Living Standard  

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 50.0 39.0 (39.0) 未实现 未实现 未实现
Available in web workers 50.0 39.0 (39.0) 未实现 未实现 未实现
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 50.0 (Yes) (Yes) 未实现

未实现

未实现 50.0
Available in web workers 未实现 50.0 (Yes) (Yes) 未实现 未实现 未实现 50.0

 

相关链接

文档标签和贡献者