こんにちは。JavaScript初心者です。
クライアント側からajaxを使用し、JSONデータをPOST送信するも
サーバー側でJSONのbodyをログ出力しても空({})となり困っています。
サーバー側は、GoogleのCloud FunctionsでJavaScriptで実装しています。
空となる原因と対策を教えていただければと思います。
[クライアント側]
index.html 一部省略しています。
html
1 <script> 2 var obj = { 3 title: 'test title', 4 description: 'test description', 5 platforms: ['A', 'B'], 6 million: false, 7 releasedAt: '2018-05-01' 8 } 9 var json = JSON.stringify(obj); 10 11 // 通信実行 12 $.ajax({ 13 type:"post", // method = "POST" 14 url:"https://us-central1-<Cloud Functionsで作成したプロジェクト名>.cloudfunctions.net/addMemo", // POST送信先のURL 15 // data:JSON.stringify(data), // JSONデータ本体 16 data:json, // JSONデータ本体 17 contentType: 'application/json', // リクエストの Content-Type 18 dataType: "json", // レスポンスをJSONとしてパースする 19 success: function(json_data) { // 200 OK時 20 alert(json_data, undefined, 4); // Chrome用 21 }, 22 error: function() { // HTTPエラー時 23 alert("Server Error. Pleasy try again later."); 24 }, 25 complete: function() { // 成功・失敗に関わらず通信が終了した際の処理 26 button.attr("disabled", false); // ボタンを再び enableにする 27 } 28 }); 29 }); 30 </script>
[サーバー側]
index.js
JavaScript
1const functions = require('firebase-functions'); 2 3exports.addMemo = functions.https.onRequest((req, res) => { 4 try { 5 console.log("req.body :", JSON.stringify(req.body)); 6 res.status(200).send(req.body); 7 } catch(error) { 8 console.error( "エラー:", error.message); 9 } 10});
[サーバー側のログ]
以下の通り、空となっています。
Log
12021-05-07T02:40:18.696ZaddMemosbt6cdnxq5im req.body : {}
回答1件
あなたの回答
tips
プレビュー