Я пытаюсь использовать объект formdata для отправки данных формы на мой сервер. Мне нужно это, потому что одно из моих полей ввода - это файл. Однако объект formdata пуст, когда я пытаюсь отправить данные на свой сервер, он также выводит «{}». В чем проблема? Я обновил jquery до 11.1, который поддерживает formdata. Благодарю.formdata объект пуст для html формы post request
<form enctype="multipart/form-data" name="formName" id="formId">
<input type="text" name="name" class="form-control" id="name">
</form>
<button type="submit" class="btn btn-xl sub">Send Message</button>
<script>
$(".sub").click(function(){
var formElement = document.querySelector("form");
alert(formElement); //alert message is "[object HTMLFormElement]"
var d = new FormData(formElement);
alert(JSON.stringify(d)); //alert message is "{}"
$.post("/email",d,function(data){
alert("success!");
});
});
</script>
Сервер:
/*never reaches endpoint*/
app.post('/email', function(req, res) {
console.log("entered");
console.log(req.body) // form fields
console.log(req.files) // form files
var resume = req.files;
email(req.body, resume);
});
https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
это пустой объект, это то, что он выглядит как строка. в стороне: он будет выглядеть так же, как JSON.stringify(), даже если он заполнен ... – dandavis
Мне интересно, почему это пустой объект. Я не могу отправить заполненную форму своим почтовым запросом. Его пустой клиент, и он никогда не делает его сервером. Что-то не замечает моего запроса? –
хорошо, ну что такое '$ .post'? – dandavis