search

Home  >  Q&A  >  body text

javascript - 用express无法获取前台利用jquery post过来的数据

前端的代码

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的时候就不行了。直接报错。请问是什么问题。

PHPzPHPz2817 days ago700

reply all(4)I'll reply

  • 阿神

    阿神2017-04-11 11:12:33

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

    reply
    0
  • 阿神

    阿神2017-04-11 11:12:33

    后台接收的路由

      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

    reply
    0
  • PHPz

    PHPz2017-04-11 11:12:33

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

    /new

    后端定制的路由

    /

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

    reply
    0
  • 怪我咯

    怪我咯2017-04-11 11:12:33

            $.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);
                }
            });

    reply
    0
  • Cancelreply