本地主机到 AWS Lambda 没有"访问控制允许源"标头



我有一个本地服务器,我正在使用它来测试未来远程托管服务器的通信及其与Lambda无服务器API的通信。我向API提出的请求是一个GET方法,我目前配置了以下内容来处理跨站点通信。

使用无服务器框架,我在serverless.yml文件中启用了cors: true

此外,响应设置为返回以下内容:

response = {
"statusCode": 200,
"headers": {
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET'
},
"body": {
"message": "Authorization Successful!"
}
}

然而,从http://localhost:8000到我在https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth托管的API的链接点击会传递错误消息:

Access to XMLHttpRequest at 'https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

当我在localhost:8000上单击链接时获取这个API时,我应该向GET添加头吗?我需要用这个AWS API Gateway更新什么吗?从无服务器框架文档来看,cors: true似乎会处理这个设置

您是否部署了API网关?确保在API网关中选择GET方法,并在操作下拉菜单下选择部署。CORS问题可以通过查看您是否能够从Postman(而不是浏览器(访问API网关来揭露。由于您正在返回Access Control Allow Origin:"*"浏览器将允许该请求。

相关内容

最新更新