javascript - 用express无法获取前台利用jquery post过来的数据
PHPz
PHPz 2017-04-11 11:10:33
0
4
698

前端的代码

var a = '{\"data\":{\"name\":"张三",\"age\":25}}';
$.ajax({
    type: "post",
    url: "/new",
    dataType: "json",
    data: a,
    success: function (data) {
        alert("success");
    },
    error: function (err) {
        alert("error : " + err);
    }
});

后端的代码

router.post('/', function (req, res) {
    var a = req.body;
    console.log(a.data.name);
});

项目是用express生成的。所以有require("body-parser")

可是当我想获取前台传过来的data中的name的时候就不行了。直接报错。请问是什么问题。

PHPz
PHPz

学习是最好的投资!

reply all(4)
阿神
var a = {"data":{"name":"张三","age":25}};
阿神

后台接收的路由

  var a = {
      data:{
        name: '张三',
        age:'25'
      }
    }

    $(function(){
      $.ajax({
        url:'/reader',
        type:'post',
        data:a,
        success:function(data){
          console.log('...');
        }
      })
    })
  app.post('/reader',function(req,res){
    var a = req.body
    res.json({1:1})
    console.log(a.data.name);
  })
GET /reader 200 316.416 ms - 1941
张三
POST /reader 200 0.760 ms - 7
PHPzhong

问题也许出在你前后端对应的路由不一样
前端url

/new

后端定制的路由

/

把两个改成相同的应该就可以了

刘奇
        $.ajax({
            type: "post",
            url: "/new",
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            data: a,
            success: function (data) {
                alert("success");
            },
            error: function (err) {
                alert("error : " + err);
            }
        });
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template