AWS Api网关CORS问题,状态为400



这让我完全疯了

我试图从一个angular应用程序调用api-gateway休息服务,我已限制使用IAM访问api-gateway。所以我需要使用IAM身份验证进行呼叫。我正在使用我已经获得的临时IAM凭据

我对该服务的调用失败,表示没有Access Control Allow Origin标头。当我试图从邮递员那里打电话给我的服务时,我没有在回复上看到所需的标题。在我的邮递员电话中,我得到了403状态,因为我的身份验证实际上失败了,但我仍然期待着标头。如果我在它工作的方法上删除IAM身份验证,我会返回我要查找的响应字符串和标头。

我在这里错过了什么?当然,即使我的身份验证失败,我仍然必须取回那个标头,这样我才能真正看到表明您的身份验证成功的消息。

任何帮助都将不胜感激

感谢

从AWS论坛上的这个链接来看,似乎有一个悬而未决的问题与我在这里的经历有关。。。不确定我正在寻找的是否是当前可能的

您是否允许您的Cognito角色访问API端点?

对于Cognito角色,您必须使用与此类似的策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "execute-api:invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:<API_REGION>:<ACCOUNT_ID>:<API_ID>/*"
            ]
        }
    }
}

如果您对端点使用IAM身份验证,并且不允许Cognito角色访问您的API,API网关将生成403响应此响应未由您的API定义定义,因为请求在API处理之前被API网关拒绝这就是您的CORS配置不适用的原因

请确保您的OPTIONS方法上没有启用AWS_IAM身份验证,否则浏览器将无法发出飞行前请求,您的请求将失败。您应该仍然在其他方法上启用AWS_IAM。

相关内容

  • 没有找到相关文章

最新更新