AWS API 网关集成请求正文映射模板

AWS API Gateway integration request body mapping template

我在 Web app.when 中使用 AWS API 和 Cognito 安全身份验证 app.when 我调用我的 api 没有覆盖集成请求正文映射模板它正在工作 fine.but 当我在集成请求主体映射模板中放置几行 如下图

    #set($inputRoot = $input.path('$'))
{
 'UserId' :'$context.authorizer.claims.email',
 'Name' :'$context.authorizer.claims.name',
 'UniqueID' :'$context.authorizer.claims.sub'
}

…它给了我以下错误:

XMLHttpRequest cannot load https://ei25XXXXXXg.execute-api.us-east-2.amazonaws.com/Development/userlogin/getcurrentuser. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:7080' is therefore not allowed access. The response had HTTP status code 400.

但我已经启用 'Access-Control-Allow-Origin' 到 '*'。有人知道吗..?

问题中引用的消息中的“响应具有 HTTP 状态代码 400” 表示服务器断定请求有问题,并拒绝按预期响应。

所以你可能想要:

  • 仔细检查请求以确保您没有犯任何语法错误或其他任何错误
  • 测试来自其他 non-browser client/tool(例如 curl 或 postman)的相同请求
  • 在服务器端检查您的服务器日志,以查看服务器在那里记录了哪些消息以指示请求有什么问题

您在浏览器控制台中收到一条消息说 “请求的资源上没有 'Access-Control-Allow-Origin' header” 只是偶然——真正的问题是你一开始并没有得到 200 OK 的响应,而是得到了 400。

事实是,大多数服务器,即使配置为在响应中发送正确的 CORS headers,通常也只会在 成功时发送那些 headers 响应,但不包括错误响应,例如 400。