aws-lambda - 使用 Axios 从 React 前端连接 API Gateway 和 Lambda 时出现 CORS 问题
问题描述
我尝试在 API Gateway 中配置“启用 CORS”并设置所有必需的标头。在 Lambda 函数中,我设置了诸如 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 之类的标头?
预检请求尚未从 API Gateway 发送到 Lambda 函数。我需要检查和配置什么吗?
请帮帮我。提前致谢
def lambda_handler(event, context):
return {
"statusCode": "200",
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "*",
"Access-Control-Allow-Headers": "*",
},
"body": json.dumps({"test": "123"})
}
解决方案
您是否已将 API Gateway 配置为使用 Lambda 代理集成?如果你想让你的 lambda 设置标题,你应该这样做。
本质上,您要么让 lambda 添加必要的标头,就像您在本示例中想要做的那样,要么让 API Gateway 添加它们。要让 lambda 添加它们,您需要启用 Lambda 代理集成。
看
- https://cloudonaut.io/how-to-enable-cors-on-api-gateway-with-lambda-proxy-integration/ https://docs.aws.amazon.com/apigateway/latest/developerguide/how- to-cors.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
- https://medium.com/@lakshmanLD/lambda-proxy-vs-lambda-integration-in-aws-api-gateway-3a9397af0e6d - 有关于如何启用 Lambda 代理集成的屏幕截图
推荐阅读
- java - Jetty 9 客户端设置 Content-Range 值正常不起作用
- angular - Angular 9:不订阅其他组件?
- python - 将通过列的函数,如果数字大于 0 返回列名,但当为 0 时返回“不可用”
- r - 在 R 中使用 Plotly 绘制显示毫秒的时间戳
- x86-64 - 在这个简单的例子中调用汇编指令做什么?
- node.js - API中的Put方法总是收到空的请求体
- unity3d - 如何检查 Unity 中 NavMeshAgent 的路径是否存在到 NavMesh 上的某个点?
- csv - spark.read.format('csv') 中的数据帧不正确
- java - 使用 Spring Boot 请求 Wrapper Body
- c++ - TAH.h 中的库/函数 - 我的代码中没有响应