# AJAX 2.0
2008 年 W3C 退出 AJAX 2.0,其中提供三个新特性(注意 IE 老版本浏览器是不兼容的):
* FormData
* 请求超时
* 进度监听
# FormData API
用于模拟或者是获取表单数据及异步文件上传。
* set: 设置键值对,若指定的 key 已经存在那么会覆盖
* get: 根据 key 来获取对应的 value(第一个)
* has: 检查是否存在指定的键值对
* append: 设置键值对,若存在则追加的 value 值
* getAll: 根据 key 来获取所有对应所有 value
* delete: 删除键值对
* forEach: 遍历
* keys: 获取所有 key 迭代器
* values: 获取所有 value 迭代器
* entries: 获取所有键值对迭代器
```
// 使用表单创建 FormData 对象
var formElement = document.querySelector('form');
var formData = new FormData(formElement);
// ----------------------------------------------
// 不使用表单创建 FormData 对象
var data = new FormData();
//设置 FormData 数据
data.set('username', 'zs');
data.set('password', '12345');
data.set('email', 'zs@126.com');
data.append('email', 'zs@163.com');
//获取 FormData 数据
console.log(data.get('username'));
console.log(data.get('email'));
console.log(data.getAll('email'));
//遍历成员
data.forEach(function (value, key) {
console.log(key, value);
})
console.log(data.has('password'));
data.delete('password');
console.log(data.has('password'));
//创建迭代器
var iteratorKeys = data.keys();
console.log(iteratorKeys.next());
var iteratorValues = data.values();
console.log(iteratorValues.next());
var iteratorEntries = data.entries();
console.log(iteratorEntries.next());
```