【问题标题】:how to change multer express post headers?如何更改 multer express 邮件标题?
【发布时间】:2019-09-21 11:42:51
【问题描述】:

我有一个 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());
      });
    };

【问题讨论】:

    标签: javascript html express multer


    【解决方案1】:

    我并没有真正使用 jQuery,但我认为您想在对 $.post 的调用中创建一个标头对象。

    查看the jquery docs,也指the ajax settings

    通过浏览文档,听起来您需要在设置中创建一个带有正确标头的 Ajax 请求,然后使用该请求执行实际的 POST。

    类似:

    let request = $.post({
      "header" : "multipart/form-data"
    })
    
    request("/api/orders", [rest of code here])
    

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 1970-01-01
      • 2014-07-16
      • 2018-04-07
      • 1970-01-01
      • 2019-04-28
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多