json - 即使 application/json 标头存在,lambda 函数中的 event.body 也不是对象
问题描述
我有一个使用 LAMBDA_PROXY 集成设置的 API Gateway / lambda 函数。我有一个 POST 资源,它在正文中发送一个 JSON 对象,如下所示:
{
"version": 123,
"attributes": [
{
"id": 1123,
"type": "integer",
"defaultValue": 88
}
]
}
POST 请求与Content-Type: application/json
标头一起发送。我希望 lambda 函数event.body
作为对象接收,以便我能够像这样引用该对象:
const version = event.body.version;
事实上,这不起作用,我被迫JSON.parse()
在 event.body 上运行。起初我认为内容类型标头没有到达 lambda,但后来我打印到日志event.headers
中,标头实际上在那里:
{
"Accept": "*/*",
"content-type": "application/json",
"Host": "jfpvip409c.execute-api.eu-west-1.amazonaws.com",
"User-Agent": "curl/7.65.0",
"X-Amzn-Trace-Id": "Root=1-5fe9940a-3f3634ce4ccd26f5211c21d1",
"X-Forwarded-For": "192.118.35.111",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
}
有人可以帮我理解为什么会这样吗?
在此先感谢
nsteiner
解决方案
推荐阅读
- session - 写上与 Sapper 和 Svelte 的会话
- ruby-on-rails - 如何在 Rails 应用程序中返回指向附件(图片)的活动存储 url?
- createjs - 按钮自动化功能
- javascript - 从后端访问数据会引发错误,提示数据未定义
- html - 将 React 嵌入 HTML 页面 - 图片 URL 不起作用
- c# - 从另一个类调用方法时出现 NullReferenceException
- javascript - 查询不起作用的firebase
- javascript - 如果 ng 内容为空,则隐藏 mat-menu
- java - 警告:JavaFX 运行时版本 8 使用版本 10 的 JavaFX API 加载 FXML 文档
- github - 在工作流/Github Actions 之间共享工件