gpt4 book ai didi

kotlin - CORS在Kotlin lambda中阻止请求,但在相同设置的Node lambda中阻止

转载 作者:行者123 更新时间:2023-12-02 12:52:44 27 4
gpt4 key购买 nike

我有一个lambda,是用Kotlin和Serverless编写的,CORS不能正常工作。我觉得我已经尝试了一切。我部署了具有相同sls.sh命令和yaml文件的Node Lambda。该功能看起来像这样

hello:
handler: handler.hello
events:
- http:
path: hello
method: post
cors: true

在Node和Kotlin中,我的回复如下所示:
{
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*"
},
"body": "{\"id\": \"f9f76590-xxxx-xxxx-xxxx-9c8e99238f40\"}"
}

在Node的情况下,这一切都很好。我像这样进行 fetch调用,并且可以正常工作(为简洁起见,省略了Promise决议):
  var makeRequest = function (data) {
fetch('https://{lambda URL}/hello', {
'headers': {
'content-type': 'application/json'
},
'body': JSON.stringify({ data }),
'method': 'POST'
})
}

在Kotlin的情况下,我会收到此CORS错误

Access to fetch at 'https://{lambda URL}/hello' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.



我尝试在“API网关”面板中“启用CORS”,但我知道它已经启用:

enter image description here

然后点击提交,我得到了错误(无效的响应状态代码)

enter image description here

当我将鼠标悬停在错误图标上时,它显示“指定了无效的响应状态代码”。

在“网关响应”下的每个子项下(默认4XX,默认5XXX等),都设置了响应头。在我的Node和Kotlin lambda中,这是相同的。

在这一点上,我完全没有主意。

唯一可能发生的奇怪事情是,我注意到在我的Node请求中,浏览器网络面板的响应 header 中看到了 access-control-allow-origin: *,但是在Kotlin中我没有看到它。

最佳答案

由此:

enter image description here

我可以看到您尚未在发布方法中创建集成响应

尝试以下配置:

enter image description here

关于kotlin - CORS在Kotlin lambda中阻止请求,但在相同设置的Node lambda中阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616598/

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