FormData类型
一般的使用场景:
1 模拟表单控件
2 用来传输二进行文件
基本的操作方法:
console.log(formdata) 这个打印出来的结果 始终为{} 它有一个隐藏域 所有的操作对象的方法全部是在它的原型中
var formdata = new FormData();
console.log(formdata)
console.log(formdata.__proto__)
结果:

基本的操作方法:
append 添加
formdata.append('name','xiaowang')
formdata.append('name','xiaoliu')
set 重置属性
formdata.set('name','xiaohong')
get 获取属性的第一个值
getAll 获取属性的全部的值 返回的是一个数组
delete 删除属性
var formdata = new FormData();
formdata.append('name','xiaowang')
formdata.append('name','xiaoliu')
console.log('append----')
console.log(formdata.get('name'))
console.log(formdata.getAll('name'))
formdata.set('name','xiaohong')
console.log('set---')
console.log(formdata.get('name'))
console.log(formdata.getAll('name'))
formdata.delete('name')
console.log('delete---')
console.log(formdata.get('name'))
console.log(formdata.getAll('name'))
结果:

将JSON转化为FormData
// json to formdata
function JSON2FormData(json) {
var formdata = new FormData();
for (let key in json) {
formdata.append(key, json[key])
}
return formdata
}
将formdata转化为json
// formdata to json
function FormData2JSON(formdata) {
var json = {}
var entries = formdata.entries();
var item = entries.next();
console.log(item)
while (!item.done) {
json[item.value[0]] = item.value[1];
item = entries.next();
}
return json;
}
github:https://github.com/zhujunzhujunzhu/formdataOpe.git
FormData ajax请求需要注意的一点:
不需要设置请求头 也就是不需要:
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');