Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将请求数据发布到节点中的json_Jquery_Json_Node.js_Http Post - Fatal编程技术网

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

Jquery 将请求数据发布到节点中的json,jquery,json,node.js,http-post,Jquery,Json,Node.js,Http Post,我正在发送一个简单的ajax jQuery post请求: $('#postButton').click (function () { var empInfo = $('#empForm').serialize(); var empData = JSON.stringify(empInfo,null,2); $.ajax({ type: 'POST', dataType: 'JSON', url

我正在发送一个简单的ajax jQuery post请求:

$('#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
而不是它在developer tools\network中的显示方式:

"bname:jjj
burl:jfjfj.com
bEmail:ff
bPhone:0608584884
fieldSelected:webPro"
尝试改变

dataType: 'JSON',
致:


jquery
serialize方法
从以下表单中创建一个编码字符串:

要获取json对象,请尝试改用
serializeArray
。 或者手动创建json对象并读取每个表单元素“
$().val()
值…”


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

其他请求中的数据类型也是“JSON”,这不是问题。我在具有相同选择的其他表单上使用了serialize方法,效果很好,唯一的区别是请求类型(get)而不是我现在尝试的帖子。正如你在developer tools\network中看到的那样,它以json格式发送。如果你发布,jquery将把
数据
放入帖子正文,使用serialize,这将只是一个编码字符串,而不是json对象。。。“bname=jjj&burl=jfjfj.com&bEmail=ff&bPhone=0608584884&fieldSelected=webPro”不是json。“{bname:jjj,burl:jfjjcom…}”将是jsoniuse:var empInfo=$('#empForm').serialize();var empData=JSON.stringify(empInfo,null,2);在我发送ajax之前。我没有说我100%确定问题在节点上。
empInfo
已经是一个字符串。stringify在这一点上什么都不做,它只是将字符串字符串化^^
dataType: 'json',