目的是為了方便異步提交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
