gpt4 book ai didi

jquery - 如何使用 ajax GET 或 POST 方法将数据传递给 Amazon lambda node.js 函数

转载 作者:搜寻专家 更新时间:2023-10-31 22:43:07 25 4
gpt4 key购买 nike

我有下面的 node.js 代码(在 Getting Started with REST APIs in Amazon API Gateway 之后):

console.log('Loading event');

exports.handler = function(event, context) {
var name = (event.name === undefined ? 'No-Name' : event.name);
context.done(null, {"Hello":name}); // SUCCESS with message
};

但我不知道如何使用 jQuery ajax 方法将“name”参数传递给该代码。它在我使用时有效:

curl -H "Content-Type: application/json" -X POST -d "{\"name\": \"PeterChan\"}" https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoresource

我可以得到结果:

{"Hello":"User"}

但是我如何使用 jQuery ajax 方法来传递“name”变量呢?

我写的ajax代码:

var data = {"name":"bbbb"};

$.ajax({
type: "POST",
dataType: "json",
url:"https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoresource",
data: data,
//processData: false,
success: function(data) {
var text=JSON.stringify(data);
alert(text);
//console.log(data);

},error: function(data) {
alert("err");
}
});

当我运行它时它会提示错误。

最佳答案

看来您可能遇到了几个问题。第一,避免使用“名称”作为变量名。第二,数据可能没有被正确解析。发送时需要 JSON.Stringify(是的,您已经有了 JSON,但它很挑剔):

$.ajax({
url: 'https://mylambdafunctionurl/',
type: 'POST',
crossDomain: true,
contentType: 'application/json',
data: JSON.stringify(data),
dataType: 'json',
success: function(data) {
//success stuff. data here is the response, not your original data
},
error: function(xhr, ajaxOptions, thrownError) {
//error handling stuff
}
});

我还添加了 crossDomain:true 和 contentType: 'application/json'。

在 lambda 函数中获取传入的 JSON 中的键/值,您只需使用 event.whateverkey(在 Lambda 控制台中使用测试事件时,使键与您发送的内容匹配以避免任何问题)。

ajax 函数中的成功回调中的数据是从 lambda 函数返回的数据,因此我建议在 lambda 函数中对其进行 JSON.stringifying,而不是成功以确保它被正确发送:

context.done(null, JSON.stringify({"Hello":name}));

关于jquery - 如何使用 ajax GET 或 POST 方法将数据传递给 Amazon lambda node.js 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607081/

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