У меня есть приложение node / express, и я хочу добавить отправку изображения в форму заказа.
Я могу получить html-форму для POST, используя ссылку действия, но я также хочу, чтобы мой javascript-файл для этой страницы мог принимать все остальные данные формы и отправлять их на другой почтовый маршрут для создания базы данных. запись для всего заказа.
Вот мой HTML, который работает для отправки поста и изображения, но перезагружает страницу из-за поведения по умолчанию события.
<form id="editOrderForm" method="POST" action="/uploadphoto" enctype='multipart/form-data' >
<div class="form-row">
<div class="form-group col-md-3">
<label for="orderWarranty">Warranty Type</label>
<input type="text" class="form-control" id="orderWarranty" placeholder="Warranty Type">
</div>
<div class="form-group col-md-3">
<label for="orderAppliance">Appliance</label>
<input type="text" class="form-control" id="orderAppliance" placeholder="Appliance">
</div>
<div class="form-group col-md-3">
<label for="orderBrand">Brand</label>
<input type="text" class="form-control" id="orderBrand" placeholder="Brand">
</div>
<div class="form-group col-md-3">
<label for="orderModel">Model</label>
<input type="text" id="orderModel" class="form-control" placeholder="">
</div>
</div>
<div class="modal-body mx-6" id="editOrderDiv">
<div class="col-md-3">
<label for="image-upload">Upload Image</label>
<input type="file" accept="image/*" id="imageupload" name="imageupload">
</div>
</div>
<div class="modal-footer d-flex justify-content-center">
<input type="submit" class="btn btn-primary" id="ordersubmit"></input>
</div>
</div>
</form>
Мне нужно, чтобы приведенный ниже код также выполнялся после отправки формы, чтобы создать еще один пост.
Если я пытаюсь опубликовать маршрут загрузки из моего файла js, он отправляет сообщение с типом содержимого application / x-www-form-urlencoded вместо multipart / form-data независимо от того, что я делаю, поэтому multer не принимает это.
Есть ли способ установить тип содержимого перед отправкой запроса в бэкэнд?
$("#editOrderForm").on("submit", function handleFormSubmit(event) {
event.preventDefault();
function submitOrder(Order) {
$.post("/api/orders/" + currentOrder.id, Order, function () {
getOrders(orderCategorySelect.val());
});
};