将请求数据发布到节点中的json

时间:2014-08-23 11:46:29

标签: jquery json node.js http-post

我发送一个简单的ajax-jQuery帖子请求:

$('#postButton').click (function () {
        var empInfo = $('#empForm').serialize();
        var empData = JSON.stringify(empInfo,null,2);

    $.ajax({
          type: 'POST',
          dataType: 'JSON',
          url: 'http://localhost:3000/post',
          data: empData, // check how to stringfy to json and send() .
          success: function(serverData){
              $('.thankU').html(serverData);
          }
        });

我已经尝试了各种我知道的方法,以便在节点服务器上将数据转换为json格式:

app.post('/post', function(req, res){

    // get query params as object
    req.on('data', function(chunk) {
        console.log("Received body data:");
        console.log(chunk.toString());
        console.log(JSON.parse(chunk) );
        console.log(qs.parse(chunk) );
        console.log(JSON.stringify(chunk));
    });
});

结果是:

Received body data:
"bname=jjj&burl=jfjfj.com&bEmail=ff&bPhone=0608584884&fieldSelected=webPro"
bname=jjj&burl=jfjfj.com&bEmail=ff&bPhone=0608584884&fieldSelected=webPro

而不是它在开发者工具\ network中出现的方式:

"bname:jjj
burl:jfjfj.com
bEmail:ff
bPhone:0608584884
fieldSelected:webPro"

2 个答案:

答案 0 :(得分:0)

尝试更改

dataType: 'JSON',

为:

dataType: 'json',

答案 1 :(得分:0)

jquery serialize method从表单中创建一个编码字符串:http://api.jquery.com/serialize/

要获取json对象,请尝试使用serializeArray http://api.jquery.com/serializeArray/。 或者手动创建json对象并读取每个表单元素'$().val()值...

您的其他代码看起来很好,您必须对对象进行字符串化并将其发布到服务器。