Javascript 为什么我的Ajax对象返回为未定义?
我试图发出一个Ajax请求,但我的对象总是以未定义的形式返回 以下是我的客户端代码:Javascript 为什么我的Ajax对象返回为未定义?,javascript,jquery,node.js,ajax,ejs,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").cli
<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>
顺便说一句,我把我的
标签放在一个链接中,这样它就可以点击了。我不知道也许这就是问题所在,但我不这么认为。但这是我得到的错误:
无法读取未定义的属性“ID”
有什么想法吗?谢谢。如果您使用的是Express,请确保启用了
主体解析器
中间件
相关帖子:错误消息告诉您无法读取属性,因为父级未定义。一个常见的原因是来自ajax调用的响应是字符串而不是对象。您是否检查了返回类型?不相关,但在
contentType
字段中,您缺少了'charset'@pfcodes'中的'c'。我已将其修复。但这并不是问题所在。你是否尝试添加一个fail:function(data)并查看数据对象以了解发生了什么?可能是@BlackICE的重复,得到了它。当我应该将配置放在index.js文件中时,我将主体解析器的配置放在了routes文件夹中。我没有正确的配置,但我已经解决了这个问题。谢谢你。
router.post('/bookDetails', (req, res) => {
console.log(req.body.ID);
});