无法在具有 CORS 的 AWS API Gateway 上使用自定义请求标头

2024-03-30

我创建并部署了具有以下结构的 AWS API Gateway 资源,其中包括自定义 HTTP 请求标头“X-header”

dev (stage)
  /echo (resource)
    POST (method)
      Method Request - Headers: X-header
    OPTIONS (method)
      Method Request - Headers: X-header

当我从 Chrome POST 到端点时,出现以下错误。

XMLHttpRequest 无法加载https://fxxxx.execute-api.us-west-2.amazonaws.com/dev/echo https://fxxxx.execute-api.us-west-2.amazonaws.com/dev/echo。预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 X-header。

Chrome 正在针对 OPTIONS 方法进行预检检查。我可以看到请求标头:

访问控制请求标头:接受、内容类型、x 标头
访问控制请求方法:POST

但响应头只有:

访问控制允许标头:内容类型、X-Amz-日期、授权、X-Api-Key、X-Amz-安全令牌
访问控制允许方法:POST、OPTIONS
访问控制允许来源:*

Chrome 希望响应 Access-Control-Request-Headers 包含我的自定义 x-header,这看起来很合乎逻辑。这是 API 网关错误吗?

我看到的唯一解决方法是删除自定义标头并在 POST 正文中传递数据。


您可以完全控制 API Gateway 中 OPTIONS 响应上的 CORS 标头。如果您需要将 x-header 添加到 Access-Control-Allow-Headers 标头中,请继续添加它!转到 OPTIONS 方法的集成响应并修改该标头的静态值。

当您首次使用控制台功能配置 CORS 时(您可能尚未执行此操作),您可以在其中输入标头列表并查看其他高级标头。

因此,您可以在将来创建时进行此更改,或者在创建 OPTIONS 后即时更新它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在具有 CORS 的 AWS API Gateway 上使用自定义请求标头 的相关文章

随机推荐