クライアントからAjax通信でポストしたデータをLambdaで取得できません。
以下のクライアントモジュールから、テキストボックス内のデータをLamdaへPostしています。
html
1<!DOCTYPE html> 2<html> 3<head> 4 <script src="https://sdk.amazonaws.com/js/aws-sdk-2.16.0.min.js"></script> 5 <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script> 6 <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script> 7 <script src="https://code.jquery.com/jquery-3.3.1.js"></script> 8<meta charset="UTF-8"> 9 <title>Test</title> 10</head> 11 12<body> 13 <input type="text" id="idNumber"> 14 <button type="button" id="lamdaPost"> 15 テストボタン 16 </button> 17</body> 18<script> 19$(function() { 20 $("#lamdaPost").click(function() { 21 var idNumber=$("#idNumber").val(); 22 23 //ここでAPIを呼び出す 24 $.ajax({ 25 dataType: "json", 26 data: idNumber, 27 type: 'POST', 28 url: 'https://*******************.amazonaws.com/dev/sample',*/ 29 success: function(resp, status) { 30 alert('success!'); 31 console.dir(resp) 32 }, 33 error: function(XMLHttpRequest, textStatus, errorThrown) { 34 alert('error!'); 35 } 36 }) 37 }) 38}); 39</script> 40</html>
POSTした値を受け取るLambda関数は以下です。
node
1exports.handler = async (event) => { 2 console.log('event') 3 console.dir(event) 4 const response = { 5 statusCode: 200, 6 body: JSON.stringify('Hello from Lambda!'), 7 }; 8 return response; 9};
上記でデータをPOSTすると、idNumberがPOSTされ、Lambda内のeventオブジェクトにデータが格納される認識です。
しかし現状では、クライアントには正常にレスポンス(コード200)が返却されるのですが、「eventオブジェクトが空の状態」であり、Lambda内でデータの加工ができない状態です。
上記について、何かご教授いただければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。