У меня была пара проблем с FormData из-за этого:
$("#form").on('submit', function(e){
let formData = new FormData(this);
sendwithAjax(formData);
});
Большинство браузеров поддерживают это.Переменная this или e.currentTarget соответствует форме, содержащей все входные данные.Таким образом, мы просто делаем formData формы.
Ну, когда дело дошло до мобильных устройств, iOS, чтобы быть более конкретным, пошла не очень хорошо.XHR-запросы только что упали.
Вот как я это исправил:
var formData = new FormData();
for (var i = 0; i < form.length; i++) {
var element = form[i];
if(element.type === "file" && element.files.length > 0){
formData.append(element.name, element.files[0], element.files[0].name);
} else if(element.type === "checkbox" && element.checked){
formData.append(element.name, element.value);
} else if(element.type !== "checkbox"){
formData.append(element.name, element.value);
}
}
sendWithAjax(formData)
Проблема заключалась в «форме» внутри экземпляра FormData, поэтому я поместил каждый элемент формы вручную, и это сработало.