You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js+MongoDB博客提交评论触发Cannot POST /错误如何解决

问题原因

  • 前端代码使用了$.ajax发送异步请求,但页面没有引入jQuery库,导致doComment函数执行直接报错,无法触发return false阻止表单默认提交行为。表单未设置action属性时会默认提交到站点根路径/,你的后端没有定义POST /路由,就会出现“CANNOT POST /”报错。
  • 后端/do-comment接口中取ID的字段和前端传递的字段不匹配,就算Ajax正常执行也会更新评论失败。

修复步骤

1. 引入jQuery库

在EJS文件的</head>标签前添加jQuery引入代码:

<script src="https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js"></script>

2. 修正后端接口的字段取值

把后端/do-comment路由里的req.body.id改成req.body.post_id,修正后的代码如下:

app.post("/do-comment", function(req, res){
    blog.collection("posts").update({"_id": ObjectId(req.body.post_id) }, { 
        $push: { 
            "comments": {author: req.body.author, comment: req.body.comment, email: req.body.email } 
        }
    }, function (error, post) {
        res.send("comment Sucessfull");
    });
});

3. 可选优化

给form标签添加action="/do-comment"属性作为降级方案,就算JS执行异常也不会直接跳404。

内容的提问来源于stack exchange,提问作者Milan Bhandari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 03:15:03