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

Postman调用serverless offline POST接口持续挂起无响应问题

问题场景

Node.js环境运行serverless offline服务时,Postman发起的POST端点请求会持续挂起,始终不会进入对应handler逻辑,即使不传递任何请求体问题依旧。同配置的GET接口可以正常访问,甚至请求不存在的POST路由也会无限等待,而GET请求无效路由时会正常返回Serverless-offline: route not found.错误。

复现代码

handlers.js

module.exports.postHandler = async (event, context, callback) => {
   console.log("Inside POST Method");
}

serverless.yml

postHandler:
  handler: src/handlers.postHandler
  events:
    - http:
        method: post
        path: v1/post/handler
故障原因

两个问题共同导致这个现象:

  • 你定义的是async类型的handler,但既没有返回标准API Gateway格式的响应,也没有调用传入的callback返回结果,Serverless Offline会一直等待handler执行完成返回响应,直接导致请求挂起。
  • 低版本serverless-offline存在POST请求解析bug:当POST请求没有携带Content-Type请求头时,请求体解析逻辑会卡住,既不会匹配已注册的路由,也不会抛出路由不存在的错误,这就是为什么无效POST路由也会一直挂起。

GET请求不受影响是因为GET请求默认没有请求体,不需要经过请求体解析流程,且低版本对GET请求有默认的响应兜底逻辑,即使handler没返回内容也不会永久挂起。

修复步骤
  1. 修正handler逻辑,async风格的handler直接返回响应即可,不要混用callback:
module.exports.postHandler = async (event, context) => {
  console.log("Inside POST Method");
  return {
    statusCode: 200,
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ msg: "ok" })
  };
}

注意:async handler不要同时使用callback参数,二者混用会导致响应逻辑判断异常,出现非预期的挂起问题

  1. Postman发POST请求时,在Headers中添加Content-Type: application/json头,避免触发旧版本的请求体解析bug。
  2. 如果无效POST路由依然挂起,直接升级serverless-offline到最新稳定版即可修复该解析bug,执行命令:
    npm i serverless-offline@latest -D

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:09:59