目的是为了方便异步提交form表单的数据,尤其是在单页应用中方便实现表单数据的提交。
代码如下:
export function jsToFormData(config) { //对象转formdata格式
let formData = new FormData();
let obj = config.data;
let arrayKey = config.arrayKey;
for (var i in obj) {
if (isArray(obj[i])) {
obj[i].map(item => {
if (!arrayKey) {
formData.append(i, item)
} else {
formData.append(i + '[]', item)
}
})
} else if (obj[i] instanceof FileList) {
//filelist 文件类型的处理
for (var fileItem = 0; fileItem < obj[i].length; fileItem++) {
if (!arrayKey) {
formData.append(i, obj[i].item(fileItem))
} else {
formData.append(i + '[]', obj[i].item(fileItem))
}
}
} else {
formData.append(i, obj[i])
}
}
return formData;
}
本代码可以实现的功能是对js数据对象转formdata数据格式,可以做到对数组的数据处理,可以对filelist文件对象的处理。
具体使用,个人可以依据自己的项目情况进行更改或改进。
注意:不兼容ie9及以下的ie
前端工程师、程序员

浙公网安备 33010602011771号