首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sendgrid和AWS Lambda Serverless无服务器表单

Sendgrid和AWS Lambda Serverless无服务器表单
EN

Stack Overflow用户
提问于 2018-09-04 20:45:06
回答 1查看 2.4K关注 0票数 0

我正在尝试使用Sendgrid和AWS建立一个超级基本的电子邮件表单。我在将数据从表单发送到Lambda函数时遇到了问题。我得到的错误是“JSON中位于0位置的意外令牌u”。我知道这和我送身体的方式有关。下面是我的Lambda函数的代码。

代码语言:javascript
复制
require("dotenv").config();
const sendgrid = require('@sendgrid/mail');

exports.handler = (event, context, callback) => {
sendgrid.setApiKey(process.env.SENDGRID_API_KEY);
var data = JSON.parse(event.body);
const msg = {
    to: data.to,
    from: 'test@gmail.com',
    subject: data.subject,
    text: data.message,
};
sendgrid.send(msg);
callback(null, 'Message Sent');
}

这是我表格的Javascript。

代码语言:javascript
复制
$(document).ready(function() {

$("#submit").click(function(e) {
    e.preventDefault();

    var to = $("#to").val();
    var subject = $("#subject").val();
    var message = $("#message").val();

    var data = {
        'to': to,
        'subject': subject,
        'message': message
    }

    $.ajax({
        type: "POST",
        url: 'https://xxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/xxxxx',
        contentType: 'application/json',
        data: JSON.stringify({data}),
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        success: function(res){
            console.log('Email was sent.');
        },
        error: function(){
            console.log('Error.');
        }
    });

})

});

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-05 17:43:13

问题是,您正在尝试解析JSON对象,而不是字符串。

var数据= JSON.parse(event.body);

这不对。只需分配,

var数据= event.body;

从那开始应该会很好的。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52173767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档