当前位置:  开发笔记 > 编程语言 > 正文

如何使用ajax GET或POST方法将过去的数据发送到amazon lambda node.js函数

如何解决《如何使用ajaxGET或POST方法将过去的数据发送到amazonlambdanode.js函数》经验,为你挑选了1个好方法。

我是亚马逊网络服务的新用户.最近我正在研究亚马逊lambda服务器,我有一个小node.js代码如下(以下示例:http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started.html):

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

我可以得到结果:{"你好":"用户"}

但是我如何使用jquery ajax方法来过去"name"变量?

我写的ajax代码:

{"Hello":"User"}

当我运行它时它会发出警报.请求帮助.

谢谢〜



1> Katharine Os..:

因此,看来您可能有几个问题。一,避免使用“名称”作为变量名称。第二,数据可能未正确解析。发送时需要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控制台中使用test事件时,使键与您要发送的键匹配,以避免出现任何问题)。

ambx函数返回的成功回调中的数据是从lambda函数返回的数据,因此,我建议在lambda函数中使用JSON.stringifying该数据,而不是确保其正确发送的成功消息:

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

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有