AWS API网关给出400错误请求错误



我使用API网关+基于JWT的授权来保护我的AWS lambda函数。我可以在我的aws控制台中为授权人获取正确的策略。我正在尝试访问的lambda函数单独运行良好。当我将GET_CUSTOMERS_URI的授权更改为"无"并获取数据时,它运行良好。但当使用API网关组合在一起时,会产生400个错误请求错误。我知道这与前端的请求方式有关,但我无法弄清楚。

我的提取请求看起来像这样[Rreact app]:-

return await fetch(GET_CUSTOMERS_URI, {
method: 'GET',
mode: 'cors', 
cache: 'no-cache', 
credentials: 'same-origin', 
headers: {
'authorizationToken': 'Bearer ' + token,
'Content-Type': 'application/json'
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer',
})

授权人返回的策略(使用AWS控制台进行测试(:-

{
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow",
"Resource": "arn:aws:execute-api:us-west-2:<account id>:<api id>/<stage-name>/GET/customers"
}
]
}

原来是CORS错误。我通过以下方式解决了这个问题:-

  1. 在API网关中选择一个端点
  2. 单击Actions->Enable CORS
  3. Access-Control-Allow-Headers字段设置为用逗号分隔的所有值,您将作为头从前端传递
  4. 单击Enable CORS and replace existing CORS headers按钮

相关内容

  • 没有找到相关文章

最新更新