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

为何AWS Lambda函数返回JSON而非纯文本?如何调整API响应?

解决API Gateway触发Lambda后返回整个JSON的问题

你遇到的问题核心在于:要么API Gateway没正确解析Lambda的返回结构,要么缺少告诉浏览器如何渲染内容的响应头。这里给你两种对应场景的解决方案:

场景1:使用Lambda Proxy集成(推荐)

如果你的API Gateway配置的是Lambda Proxy集成(这是最常用的触发方式),只需要在返回的响应头里添加Content-Type: text/plain,明确告诉浏览器这是纯文本内容,同时保留现有的返回结构即可。修改后的代码如下:

def lambda_handler(event, context):
    resp = {
        "statusCode": 200,
        "headers": {
            "Access-Control-Allow-Origin": "*",
            "Content-Type": "text/plain"  # 新增该行,指定内容类型为纯文本
        },
        "body": "Hello, World!"
    }
    return resp

添加这个头后,浏览器会识别到响应是纯文本格式,只会渲染body里的「Hello, World!」内容,而不是整个JSON结构。

场景2:使用普通Lambda集成

如果你的API Gateway没启用Proxy集成,而是普通的Lambda集成,那Lambda不需要返回包含statusCode、headers的JSON结构,直接返回你想要显示的文本即可:

def lambda_handler(event, context):
    return "Hello, World!"

这种情况下,API Gateway会直接把Lambda的输出作为响应体返回给浏览器,默认会处理成纯文本类型。

小提示

不确定自己用的是哪种集成方式?可以登录API Gateway控制台,找到对应的集成请求,查看是否勾选了「Use Lambda Proxy integration」选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:46:17