Javascript 在Python Lambda中从POST请求中提取参数

Javascript 在Python Lambda中从POST请求中提取参数,javascript,python,post,aws-lambda,request,Javascript,Python,Post,Aws Lambda,Request,背景: 我正试图从JavaScript向用python编写的AWS lambda函数发出POST请求。然后,我会将POST请求中的信息输入数据库 问题: 我似乎不知道如何从POST请求中获取信息。并将其存储到变量中 我曾尝试使用事件['Username',它在AWS提供的测试模拟中起作用,但实际上不起作用 <form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/P

背景: 我正试图从JavaScript向用python编写的AWS lambda函数发出POST请求。然后,我会将POST请求中的信息输入数据库

问题: 我似乎不知道如何从POST请求中获取信息。并将其存储到变量中

我曾尝试使用事件['Username',它在AWS提供的测试模拟中起作用,但实际上不起作用

<form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser">
            <label for="Username">Username:</label><br>
            <input type="text" id="Username" name="Username" value=""><br>
            <label for="password">Password:</label><br>
            <input type="text" id="Password" name="Password" value=""><br><br>
            <input type="submit" id="submit" value="Submit" >
    </form> 

您的HTTP正文将通过lambda作为
事件['body']

另外,我认为您需要使用
JSON.loads
解析主体的JSON字符串

最后,我看到您的HTML正在执行一个
GET
方法,您可能需要修复该问题:

<form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser">


无服务器是lambda函数的一个很好的资源。下面是一个可能适用于您的案例的示例:

已解决:

我发现直接发布到AWS Lambda是不起作用的,因为字符串格式。AWS Lambda需要使用JSON.stringify()的JSON格式


当我使用post时,我总是会遇到这个错误。“SyntaxError:JSON.parse:JSON数据第1行第74列的转义字符不正确”
import pymysql
import json

#endpoint = 'fake.us-east-1.rds.amazonaws.com'
#username = 'admin'
#password = 'admin'
#database_name = 'fake'

#connection
#connection = pymysql.connect(endpoint, user=username, passwd=password, db=database_name)

def lambda_handler(event, context):

   user =  event['Username']
   password = event['Password']
   
   return {
      "Username": user,
      "Password":password
   }
<form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser">

        <form onsubmit="submitData();return false;">
            <label for="Username">Username:</label><br>
            <input type="text" id="Username" name="Username" value=""><br>
            <label for="password">Password:</label><br>
            <input type="text" id="Password" name="Password" value=""><br><br>
            <input type="submit" id="submit" value="Submit" >
        </form>
            function submitData() {
                var user = document.getElementById("Username").value
                var pass = document.getElementById("Password").value
                var json = { Username: user, Password: pass };
                $.ajax({
                    type: "POST",
                    url: "https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser",
                    data: JSON.stringify(json),
                    beforeSend: function() { 
                        console.log("Before");
                        $("#submit").attr('disabled', true);
                    },
                    success: function(response){ 
                        console.log(response);
                        $("#submit").attr('disabled', false);
                    }
                });
            }
import pymysql
import json

def lambda_handler(event, context):
   resp = event
   return {
      "Username:": resp["Username"],
      "Password": resp["Password"]
   }