diff --git a/dev/Remote/AbstractAjax.js b/dev/Remote/AbstractAjax.js index 48263dafb..5c6ab17a6 100644 --- a/dev/Remote/AbstractAjax.js +++ b/dev/Remote/AbstractAjax.js @@ -152,10 +152,17 @@ class AbstractAjaxRemote { }; params.XToken = Settings.appSettingsGet('token'); // init.body = JSON.stringify(params); - const formData = new FormData(); - Object.keys(params).forEach(key => { - formData.append(key, params[key]) - }); + const formData = new FormData(), + buildFormData = (formData, data, parentKey) => { + if (data && typeof data === 'object' && !(data instanceof Date || data instanceof File)) { + Object.entries(data).forEach(([key,value]) => { + buildFormData(formData, value, parentKey ? `${parentKey}[${key}]` : key); + }); + } else { + formData.append(parentKey, data == null ? '' : data); + } + }; + buildFormData(formData, params); init.body = (new URLSearchParams(formData)).toString(); }