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

AWS API Gateway v2 OPTIONS请求未返回CORS头问题排查咨询

问题根因

你当前预检请求未返回CORS头是两个配置不匹配导致的:

  • 你发送的预检请求头Access-Control-Request-Headers: origin不在API网关CORS配置的AllowHeaders列表中,当前列表仅允许content-type,校验不通过时API网关不会返回任何CORS相关响应头
  • Origin字段必须填写完整的源站格式,需包含协议、端口,例如http://localhost:3000,仅填写localhost不符合规范

Lambda是否影响当前问题

你的判断正确。OPTIONS预检请求由API网关直接处理,不会转发到后端Lambda,因此Lambda侧的CORS头配置和当前问题完全无关,只有预检通过后的实际业务请求才会到达Lambda。

正确校验CORS配置的curl方法

  1. 先修改API网关CORS配置,把需要放行的请求头加入AllowHeaders列表,例如origin、content-type,测试阶段也可以临时设为*降低排查复杂度
  2. 使用以下curl命令发起预检请求:
# 替换为你实际的源站地址、API地址、请求方法、请求头
ORIGIN="http://localhost:3000"
API_URL="https://redacted.execute-api.us-west-2.amazonaws.com/redacted/"
REQUEST_METHOD="POST"
REQUEST_HEADERS="content-type,origin"

curl -v -X OPTIONS \
  -H "Origin: ${ORIGIN}" \
  -H "Access-Control-Request-Method: ${REQUEST_METHOD}" \
  -H "Access-Control-Request-Headers: ${REQUEST_HEADERS}" \
  "${API_URL}"
  1. 配置生效的判断标准:响应头中包含Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers三个必填CORS头

标签相关建议

支持新增aws-api-gateway-v2标签。API Gateway v2(HTTP API)和v1(REST API)在CORS处理逻辑、部署机制、集成方式上差异较大,独立标签更便于同类问题检索,和Terraform拆分独立资源模块的逻辑一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:48:01