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