gpt4 book ai didi

javascript - 使用 API Gateway 的 Lambda 请求不断收到 502。请求的资源上不存在 'Access-Control-Allow-Origin' header

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

我使用 Serverless 构建了一个 API 网关,但使用 allowCredentials: true 创建的第一条路由不起作用。

clients-confirmation:
handler: clients.onConfirmation
events:
- http:
path: clients/on-confirmation
method: post
cors:
origin: 'https://840b1a6d.ngrok.io' # <-- Specify allowed origin
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
- X-Amz-Security-Token
- X-Amz-User-Agent
- Access-Control-Allow-Origin
- Access-Control-Allow-Credentials
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
allowCredentials: true
cacheControl: 'max-age=600, s-maxage=600, proxy-revalidate'
authorizer: aws_iam

用户已登录,我使用 AWS-Amplify Auth.post 发布到路由。

我尝试将我的本地主机放在 ngrok 上,以便更好地感受真实环境,但它不起作用。

我认为我的 ResponseBuilder 提供了正确的 header 。

export default class ResponseBuilder {
static create(data, withCredentials = false) {
return {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': 'https://840b1a6d.ngrok.io',
'Access-Control-Allow-Credentials': withCredentials, // true
'Access-Control-Allow-Headers': 'access-control-allow-origin, Access-Control-Allow-Headers, Access-Control-Allow-Origin, Origin,Accept, Access-Control-Allow-Credentials'
},
body: JSON.stringify(data),
'isBase64Encoded': false,
};
}
}

我在每次请求时都使用它。我尝试输入 ngrok 来源和通配符,但它一直告诉我同样的错误。

关于 lambda 的响应或我应该添加到无服务器文件中的设置,是否有一些我不知道的内容?

非常感谢您的帮助!

最佳答案

allowCredentials: true 不适用于 'Access-Control-Allow-Origin': '*'

您必须明确指定来源:

'Access-Control-Allow-Origin': 'https://840b1a6d.ngrok.io'

还有'Access-Control-Allow-Credentials'中的withCredentials:withCredentials
应该是true

关于javascript - 使用 API Gateway 的 Lambda 请求不断收到 502。请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54272682/

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