Javascript jquery表单序列化-不传递任何东西…但是console.log很好

Javascript jquery表单序列化-不传递任何东西…但是console.log很好,javascript,jquery,Javascript,Jquery,我的问题是我的表单正在提交(到一个节点/express api),如果我console.log req.body(@api),结果是一个空对象。但是,如果客户端上有i console.log,则序列化字符串包含数据 通读其他帖子-他们的问题不一样,所以所发布的解决方案对我不起作用 <form class="newsletter-form clearfix" method="post" action="/subscribe" role="form" id="frmSubscribe

我的问题是我的表单正在提交(到一个节点/express api),如果我console.log req.body(@api),结果是一个空对象。但是,如果客户端上有i console.log,则序列化字符串包含数据

通读其他帖子-他们的问题不一样,所以所发布的解决方案对我不起作用

    <form class="newsletter-form  clearfix" method="post" action="/subscribe" role="form" id="frmSubscribe" >
        <div class="form-group " >
            <label for="newsletter-signup" >Subscribe</label>
            <input type="email" class="form-control input-sm" id="newsletter-signup" name="email" placeholder="Email Address">
            <button type="button" id="subscribe" class="btn btn-default black-button" >Subscribe Now!</button>
        </div>
    </form>
“/subscribe”的结果如下所示:

subscribe = {}
而console.log($(“#frmSubscribe”).serialize()的结果如下所示

email=whatever-i-type
搔搔我的头-当然我错过了一些明显的东西…提前谢谢

一件可能会影响这一点的事情是,这个表单位于angular 2应用程序的第个入口点的索引页上。然而,正如我所说的,客户端上的console.log吐出了正确的信息——因此我相当确信jquery库正确地看到了表单,并提交到了正确的api路径——当我的api“log”输出时——似乎传递的对象是空的


如果有帮助的话——如果我去掉所有的JS,只是将我的表单改为使用“input type='submit”-表单甚至没有提交-它什么也不做-是的,我删除了侦听器,应该没有任何干扰。但是可能有。

请注意,您没有明确指定
内容类型。默认情况下,jQuery使用
'application/x-www-form-urlencoded的
内容类型
;字符集=UTF-8'
带post。在这种情况下,您将在服务器上接收url编码的字符串内容,而不是
JSON


检查此项-了解如何解析您正在使用的特定Express版本的内容

特别是:将此添加到我的express应用程序。use(bodyParser.urlencoded({//支持URL编码的扩展体:true}));
subscribe = {}
email=whatever-i-type