简体   繁体   English

JQuery Ajax 使用表单数据提交表单提交时不返回任何内容

[英]JQuery Ajax Form Submit with Form Data returns nothing on submit

The following example below returns nothing.下面的示例不返回任何内容。 Could you please clarify if I missed something?如果我遗漏了什么,你能澄清一下吗?

Javascript: Javascript:

$('#add-modal').submit(function(e) {        
  e.preventDefault();
  var formData = new FormData( document.getElementById("add-modal"));
  $.ajax({
    type: "POST",
    url: "/add-form",
    data: formData,
    processData: false,
    contentType: false,
    success: function (data) { console.log("SUCCESS : ", data); },
    error: function (e) {console.log("ERROR : ", e); }
  });
});

HTML (submission form): HTML(提交表格):

<form id="add-modal" method="POST" enctype="multipart/form-data">
    <div class="modal-body">                    
        <div class="form-group">
            <label>Name</label>
            <input type="text" class="form-control"  name="name" required>
        </div>
        <div class="form-group">
        <label>Classes</label>
         <select class="form-control" name="classes">
         <option value="Direct">Direct</option>
         <option value="Merketing">Merketing</option>
         <option value="Partnets">Partnets</option>
         </select>
        </div>  
        <div class="form-group">
        <label>File</label>
         <input type="file"  class="form-control" name="file">
        </div>                  
    </div>
    <div class="modal-footer">
        <input type="submit" class="btn btn-success" value="Add">
    </div>
</form>

Server-side (node js):服务器端(节点 js):

app.post('/add-form', function(req, res, next){
    
    console.log(req.body);
    
});

With my best regards, Evgeniy向我致以最诚挚的问候, Evgeniy

The form is using express to process the back-end.表单使用express来处理后端。 The form is multi-part and processing a file upload.该表单是多部分的并处理文件上传。

A multi-part processor is required to parse the form data.解析表单数据需要一个多部分处理器。 The comment by @ChrisG suggested using multer . @ChrisG 的评论建议使用multer It was expected that bodyParser was doing this parsing.预计 bodyParser 正在执行此解析。 Replacing it with multer which needs to be imported in the express app as per the multer documentation根据 multer 文档将其替换为需要在 express 应用程序中导入的 multer

const express = require('express')
const multer  = require('multer')
const upload = multer({ dest: 'uploads/' })

app.post('/add-form', function(req, res, next){  
  console.log(req.body);   
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM