为什么我的Ajax对象返回为undefined?

时间:2018-08-15 00:37:57

标签: javascript jquery node.js ajax ejs

我正在尝试发出Ajax请求,但是我的对象不断返回未定义状态。

这是我的客户端代码:

<a class="clicklink" href="/bookDetails"><h5 class="card-title"><%= title %></h5></a>

<script type="text/javascript">
$(document).ready(function(){
  $(".card-title").click(function(){
    $.ajax({
      type: 'post',
      contentType: "application/json; harset=UTF-8",
      data: JSON.stringify({ID:'<%= ID %>'}),
      url: 'http://localhost:3000/bookDetails',
      success: function(data){
        console.log('success');
      }
    });
  });
});
</script>

这是我的邮寄要求代码:

router.post('/bookDetails', (req, res) => {
  console.log(req.body.ID);
});

顺便说一句,我将<h5>标签放在链接内,因此可以点击。我也许不是问题所在,但我不这么认为。但这是我得到的错误:

  

无法读取未定义的属性“ ID”

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:1)

如果您使用Express,请确保已启用body-parser中间件。

相关帖子:Express.js req.body undefined

答案 1 :(得分:0)

该错误消息告诉您,由于父项未定义,因此无法读取该属性。造成这种情况的一个常见原因是,ajax调用的响应是字符串而不是对象。您检查过退货类型吗?