我尝试使用Amazon的API网关和Lambda启用CORS,但我一直收到错误。
Access to XMLHttpRequest at 'https://<url>' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我遵循了https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html,并将其添加到了lambda表达式中:
statusCode : statusCode,
body: responseBody,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
"Access-Control-Allow-Headers": "Content-Type",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
}我还转到API网关并单击了enable CORS按钮。如果我查看API网关中的选项,它会显示Access-Control-Allow-Headers存在。
如果我在API网关上运行一个测试,我可以看到lambda表达式返回的头,并且预期的头都在那里,但我仍然得到相同的错误消息。
编辑: Logwatch没有打印任何东西,所以我假设它甚至没有打印到我的lambda函数。
我可以从POSTMAN成功地访问API,并且它有CORS标头
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: OPTIONS,POST,GET以下是我在chrome中尝试时得到的响应头。
content-length: 35
content-type: application/json
date: Sun, 03 May 2020 01:51:15 GMT
status: 400
x-amz-apigw-id: L7p_IEbuoAMFeaA=
x-amzn-errortype: BadRequestException
x-amzn-requestid: 7ed06b7d-951f-4774-9bfa-62f307ee5974发布于 2020-05-03 10:25:40
问题是我从我的UI中错误地POSTing了数据,所以它没有通过模型验证。在我禁用body验证后,它开始正常工作。
https://stackoverflow.com/questions/61565110
复制相似问题