--- title: FormData slug: Web/API/FormData tags: - FormData - XMLHttpRequest translation_of: Web/API/FormData --- <p>{{APIRef("XMLHttpRequest")}}</p> <p><strong><code>FormData</code></strong> 接口提供了一种表示表单数据的键值对 <code>key/value</code> 的构造方式,并且可以轻松的将数据通过{{domxref("XMLHttpRequest.send()")}} 方法发送出去,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 <code>"multipart/form-data"</code>,它会使用和表单一样的格式。</p> <p>如果你想构建一个简单的<code>GET</code>请求,并且通过{{HTMLElement("form")}}的形式带有查询参数,可以将它直接传递给{{domxref("URLSearchParams")}}。</p> <p>实现了 <code>FormData</code> 接口的对象可以直接在{{jsxref("Statements/for...of", "for...of")}}结构中使用,而不需要调用{{domxref('FormData.entries()', 'entries()')}} : <code>for (var p of myFormData)</code> 的作用和 <code>for (var p of myFormData.entries())</code> 是相同的。</p> <div class="note"> <p><strong>注意</strong>:此特性可用于 <a href="/zh-CN/docs/Web/API/Web_Workers_API">Web Workers</a>。</p> </div> <h2 id="构造函数">构造函数</h2> <dl> <dt>{{domxref("FormData.FormData","FormData()")}}</dt> <dd>创建一个新的 <code>FormData</code> 对象。</dd> </dl> <h2 id="方法">方法</h2> <dl> <dt>{{domxref("FormData.append()")}}</dt> <dd>向 <code>FormData</code> 中添加新的属性值,<code>FormData</code> 对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在则新增一项属性值。</dd> <dt>{{domxref("FormData.delete()")}}</dt> <dd>从 FormData 对象里面删除一个键值对。</dd> <dt>{{domxref("FormData.entries()")}}</dt> <dd>返回一个包含所有键值对的{{jsxref("Iteration_protocols","iterator")}}对象。</dd> <dt>{{domxref("FormData.get()")}}</dt> <dd><code><font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">返回在 </span></font>FormData</code> 对象中与给定键关联的第一个值。</dd> <dt>{{domxref("FormData.getAll()")}}</dt> <dd>返回一个包含 <code>FormData</code> 对象中与给定键关联的所有值的数组。</dd> <dt>{{domxref("FormData.has()")}}</dt> <dd><code><font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">返回一个布尔值表明 </span></font>FormData</code> 对象是否包含某些键。</dd> <dt>{{domxref("FormData.keys()")}}</dt> <dd>返回一个包含所有键的{{jsxref("Iteration_protocols","iterator")}}对象。</dd> <dt>{{domxref("FormData.set()")}}</dt> <dd>给 <code>FormData</code> 设置属性值,如果<code>FormData</code> 对应的属性值存在则覆盖原值,否则新增一项属性值。</dd> <dt>{{domxref("FormData.values()")}}</dt> <dd>返回一个包含所有值的{{jsxref("Iteration_protocols","iterator")}}对象。</dd> </dl> <h2 id="规范">规范</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">规范</th> <th scope="col">状态</th> <th scope="col">备注</th> </tr> <tr> <td>{{SpecName('XMLHttpRequest','#interface-formdata','FormData')}}</td> <td>{{Spec2('XMLHttpRequest')}}</td> <td>FormData defined in XHR spec</td> </tr> </tbody> </table> <h2 id="浏览器兼容性">浏览器兼容性</h2> <p>{{Compat("api.FormData")}}</p> <h2 id="参见">参见</h2> <ul> <li>{{domxref("XMLHTTPRequest")}}</li> <li><a href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Using XMLHttpRequest</a></li> <li><a href="/en-US/docs/Web/API/FormData/Using_FormData_Objects">Using FormData objects</a></li> <li>{{HTMLElement("Form")}}</li> </ul>