gpt4 book ai didi

amazon-web-services - 如何在 Lambda 中获取原始正文字符串(API 网关 Lambda 代理)

转载 作者:行者123 更新时间:2023-12-03 23:19:03 24 4
gpt4 key购买 nike

在 API 网关上启用 CORS 后,这是我发送到 http 端点的请求:

    $.ajax({
type: 'put',
url: 'https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/artist/application/julian_test',
data: {params: {param1: "543543", param2: "fdasghdfghdf", test: "yes"}},
success: function(msg){
console.log(msg);
},
error: function(msg){
console.log(msg);
}
});

这是 lambda 函数(我使用的是 node serverless 包,代码没有错误):

module.exports.julian_test = (event, context, callback) => {
console.log(event);
console.log(event.body);

var response_success = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify({
firstUser: {
username: "Julian",
email: "awesome"
},
secondUser: {
username: "Victor",
email: "hello world"
},
thirdUser: {
username: "Peter",
email: "nice"
}
})
};
callback(null, response_success);
};

console.log(event.body) 注销: params%5Bparam1%5D=543543&params%5Bparam2%5D=fdasghdfghdf&params%5Btest%5D=yes

,这不是我想要的格式。我检查了 OPTIONS 集成请求/ body 映射模板,这是快照。

enter image description here

我尝试删除“application/json”,但之后收到以下响应:

XMLHttpRequest 无法加载 https://xxxxxx.execute-api.us-east-1.amazonaws.com/dev/artist/application/julian_test .对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin” header 。因此不允许访问 Origin 'null'。响应具有 HTTP 状态代码 500。

有谁知道如何在后端 lambda 中获取原始字符串请求正文?请帮忙!

最佳答案

屏幕截图是用于 CORS 的 OPTIONS 方法。

您实际的 Lambda 函数调用可能是通过 POST 方法进行的。请检查 POST 方法下的集成请求 Body 映射模板。如果设置为通过正文传递(默认设置),则输入请求中的正文应按原样传递给 Lambda。

请使用 API 网关控制台中的测试功能来查看输入如何转换为集成请求。那应该可以帮助您进行调试。

关于amazon-web-services - 如何在 Lambda 中获取原始正文字符串(API 网关 Lambda 代理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42195624/

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