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

Serverless框架配置AWS HTTP API的CORS规则不生效问题求助

修复步骤

  1. 修正serverless.yml的CORS配置
    • 如果你需要允许跨域凭证(比如跨域请求带Cookie、授权头),不能使用*作为允许源,要替换为你实际的前端域名,同时在provider.httpApi.cors下添加allowCredentials: true配置;如果不需要凭证,直接删除Lambda返回头里的Access-Control-Allow-Credentials: true配置,浏览器不允许*源和允许凭证的配置同时生效,会直接拦截跨域请求。
    • 删除allowedHeaders列表中所有Access-Control-开头的项,这些是跨域响应头,不属于前端发送的请求头,加入允许列表会导致预检请求校验失败。
  2. 删除多余的OPTIONS事件配置
    AWS HTTP API开启CORS配置后会自动处理所有OPTIONS预检请求,不需要手动为每个接口添加OPTIONS事件。你当前配置的OPTIONS handler会覆盖网关的默认处理逻辑,直接导致CORS失效,删除getOTP下的OPTIONS类型httpApi事件即可。
  3. 统一CORS头处理逻辑
    不要同时在网关和Lambda两侧配置CORS响应头,避免冲突:要么完全走网关层面的CORS配置,删除Lambda返回值里所有Access-Control-开头的响应头;要么完全关闭网关层面的CORS配置,所有CORS响应头都在Lambda代码中返回。
  4. 部署验证
    调整完成后重新执行serverless deploy部署,部署完成后可以用curl命令发送预检请求验证配置是否生效:
    curl -X OPTIONS <你的API接口地址> \
    -H "Origin: <你的前端域名>" \
    -H "Access-Control-Request-Method: POST" \
    -v
    
    查看返回的响应头中是否包含正确的CORS相关配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:03