gpt4 book ai didi

cors - 放大 : CORS header ‘Access-Control-Allow-Origin’ missing error even though CORS is enabled in API Gateway and Lambda headers

转载 作者:行者123 更新时间:2023-12-03 20:55:09 25 4
gpt4 key购买 nike

我正在使用 Amplify,并将我的 API 网关代理到 Lambda。我在我的 /{proxy+} 上启用了 CORS 并部署了 API。在我的 Lambda 函数中,我在我的平凡函数中设置了适当的 header :

import json


def handler(event, context):
print("received event:")
print(event)
return {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Credentials": True,
"Access-Control-Allow-Headers": "Content-Type",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET",
"Access-Control-Allow-Origin": "*",
},
"body": json.dumps(event),
}


此 Lambda 函数位于通过 Cognito 进行身份验证的 API 网关资源之后。

当我使用 Amplify 调用我的 API 时:

let myInit = {
headers: {
Authorization: `Bearer ${(await Auth.currentSession())
.getIdToken()
.getJwtToken()}`
}
};

API.get("adminapi", "/admin", myInit) ...


我的 GET 请求中缺少可怕的 CORS header “Access-Control-Allow-Origin”:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/admin. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
我看到它在 OPTIONS 请求中返回:

enter image description here

我什至在 Postman 中进行了测试以验证 header 是否回来了:

enter image description here

我在这里做错了什么?看起来调用没有通过 API 网关。我想知道它是否与身份验证有关。当我使用我的 IAM 凭证从 Postman 进行测试时它工作正常,但从我的 Web 应用程序使用不记名 token 它失败,如上所述。

最佳答案

我假设您忘记处理用于 preflight requestOPTIONS 动词并在那里返回标题。

您正在发送一个 Authorization header ,该 header 不在 "simple" requests 的允许 header 列表中,因此 preflighted request 已完成。

此外,为了 credentials to get through ,您必须确保也设置了 Access-Control-Allow-Credentials: true header 。

从代码片段中看不出您的请求正文是什么内容类型,但如果它不是 application/x-www-form-urlencodedmultipart/form-datatext/plain (例如 application/json ),您还需要使用 Content-TypeAccess-Control-Allow-Headers: Content-Type header 列入白名单。

关于cors - 放大 : CORS header ‘Access-Control-Allow-Origin’ missing error even though CORS is enabled in API Gateway and Lambda headers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61206299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com