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

Angular请求Node.js API返回404错误但Postman调用正常问题求助

问题原因

  • 核心是请求方法不匹配+路由挂载顺序错误两个问题:
    1. 路由配置里你只给/publicationData注册了POST请求的处理逻辑,但是Angular的getPublication方法里发的是GET请求,服务端没注册GET方法自然返回404
    2. 你在app.js里把app.use('/articles',articlesrouter); 放在了app.listen(3000)之后,Express的路由注册必须在服务启动之前完成,放在启动之后的路由不会生效
    3. 你说Postman能请求成功,是因为你Postman里发的是POST请求,所以才会正常返回结果

修复方案

第一步:修正路由注册顺序

打开app.js,把app.use('/articles',articlesrouter); 移动到app.listen(3000)之前,调整后代码片段如下:

// 原有其他中间件配置不变
app.use(bodyParser.json());

// 先注册路由
app.use('/articles',articlesrouter); 

// 最后启动服务
var server = app.listen(3000,()=>{
    console.log("server is running on port 3000");
});
server.timeout = 600000;

module.exports.handler = serverless(app);

第二步:匹配请求方法

二选一即可:

方案1:给路由增加GET方法支持

修改发布内容路由配置文件,给/publicationData同时注册GET和POST方法:

articlesrouter.route('/publicationData')
.get(articlescontroller.publicationData)
.post(articlescontroller.publicationData);  

方案2:把Angular的请求改成POST

修改app-service.ts里的getPublication方法:

getPublication(){
    let url = "http://localhost:3000/articles/publicationData";
    // 把get改成post,第二个参数传空对象即可
    return this.http.post(url, {});
}

完成以上修改后重启Node服务,重新编译Angular项目即可正常请求。

内容的提问来源于stack exchange,提问作者swati goel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 11:06:03