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

Jquery 如何使用ajax GET或POST方法将数据传递到Amazon lambda node.js函数,jquery,node.js,ajax,amazon-web-services,aws-lambda,Jquery,Node.js,Ajax,Amazon Web Services,Aws Lambda,我有下面的node.js代码(如下所示): 但我不知道如何使用jQueryAjax方法将“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"} 但是如

我有下面的node.js代码(如下所示):

但我不知道如何使用jQueryAjax方法将“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"}
但是如何使用jqueryajax方法传递“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");
      }
});

当我运行它时,它会提醒一个错误。

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

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

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

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

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

是的,这只是一个示例链接,在实际情况中,我使用的是我自己的api url。Thxy您需要确保您的url不会出现任何与服务器相关的错误。您应该避免使用“name”作为变量名,因为这是一个javascript关键字。非常感谢Katharine Osborne~在我的代码中添加了“JSON.stringify(data)”之后,它就可以工作了~还有一件事,我想问一下如何使用GET方法来实现它……例如,我想在浏览器中访问“”以获取结果。我不知道如何配置API网关来执行GET方法…谢谢你,很抱歉我的英语不好~我无法在注释中显示代码,但你需要创建一个单独的使用GET的lambda函数。您的ajax调用不需要传入任何数据(因此您不需要contentType、data或dataType,类型为“GET”。您可以询问另一个问题并在此处链接到它。
$.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
    }
});
context.done(null, JSON.stringify({"Hello":name}));