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

AWS::Serverless::HttpApi CORS配置POST生效但OPTIONS不生效如何解决

问题核心原因

你自定义了/auctions路径的OPTIONS路由并绑定了Lambda函数,此时AWS HttpApi的全局CorsConfiguration配置不会自动为该自定义OPTIONS路由注入跨域响应头,只有非自定义的路由和平台自动生成的OPTIONS响应才会自动携带配置的CORS头。


可行解决方案

方案一:删除自定义OPTIONS函数(推荐)

你不需要手动编写OPTIONS处理逻辑,HttpApi开启CORS配置后会自动处理所有路由的预检请求:

  1. 删掉template.yaml里的OptionsFunction整段资源配置
  2. 重新执行SAM部署,等待配置生效后测试即可。此时OPTIONS请求会自动返回204状态码,同时携带你配置的所有CORS响应头。
    如果之前删除后测试无响应头,大概率是旧的自定义OPTIONS路由残留未清理,部署前可先到API Gateway控制台手动删除残留的OPTIONS路由再重新部署。

方案二:在自定义OPTIONS Lambda中手动添加CORS响应头

如果你有特殊逻辑需要保留自定义OPTIONS处理函数,直接在返回值中补充所有需要的跨域头即可,示例代码如下:

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'headers': {
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
            'Access-Control-Allow-Headers': '*'
        }
    }

额外注意:如果后续你的接口需要支持Cookie等凭证传递,需要把Access-Control-Allow-Origin改为具体的域名而非*,同时补充Access-Control-Allow-Credentials: true头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:09:03