質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

1902閲覧

クライアントからAjax通信でポストしたデータをLambdaで取得できない

takechankurocha

総合スコア14

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

2クリップ

投稿2019/07/10 03:33

クライアントから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内でデータの加工ができない状態です。

上記について、何かご教授いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

マッピングしたKeyNameのデータが参照できるようにする必要があるため、

data: idNumber

の箇所を下記に変更してみてはいかかでしょうか。

data: JSON.stringify({id: idNumber})

投稿2019/08/01 15:30

hirontan

総合スコア195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問