Not being able to send the html form data to lambda function

0

body> <div class="testbox"> <form method="post"> <div class="banner"> <h1>TechCider Application Form</h1> </div> <div class="item"> <br> <p>Name<span class="required"></span></p> <div class="name-item"> <input type="text" name="firstName" placeholder="First" required id="firstName"/> </div> <div class="name-item"> <input type="text" name="lastName" placeholder="Last" required id="lastName"/> </div> </div> <div class="contact-item"> <div class="item"> <p>Email<span class="required"></span></p> <input type="text" name="email" required id="email"/> </div> </div> <div class="contact-item"> <div class="item"> <p>Phone<span class="required"></span></p> <input type="text" name="phone" required id="phone"/> </div> </div> <div class="position-item"> <div class="item"> <p>What position are you applying for?<span class="required"></span></p> <select name="position" required id="position"> <option value="President">President</option> <option value="Vice President">Vice President</option> <option value="Treasurer">Treasurer</option> <option value="Head">Head</option> <option value="Sub Head">Sub Head</option> </select> </div> </div> <div class="question"> <br> <p>Which department are you interested in?</p> <div class="question-answer" id="department"> <div> <input type="radio" value="Research and Development" id="radio_1" name="department" required/> <label for="radio_1" class="radio"><span>Research and Development</span></label> </div> <div> <input type="radio" value="Public Relation" id="radio_2" name="department" required/> <label for="radio_2" class="radio"><span>Public Relation</span></label> </div> <div> <input type="radio" value="Marketing" id="radio_3" name="department" required/> <label for="radio_3" class="radio"><span>Marketing</span></label> </div> <div> <input type="radio" value="Digital Creatives" id="radio_4" name="department" required/> <label for="radio_4" class="radio"><span>Digital Creatives</span></label> </div> </div> </div> <div class="item"> <p>Upload your CV<span class="required">*</span></p> <input type="file" name="cv" required id="cv"/> </div> <div class="btn-block"> <button type="button" onclick="callAPI(document.getElementById('firstName').value,document.getElementById('lastName').value,document.getElementById('email').value,document.getElementById('phone').value,document.getElementById('position').value,document.getElementById('department').value,document.getElementById('cv').value)">SUBMIT</button> </div> <div id="message-container"></div> </form> </div> <script> function callAPI(fName, lName, eml, ph, pos, dept, c_v) { // Convert the data from the HTML form to a JSON object var data = { "firstName": fName, "lastName": lName, "email": eml, "phone": ph, "position": pos, "department": dept, "cv": c_v };

// Send the JSON object to the Lambda function var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify(data); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https://6j61j5oxjh.execute-api.ap-south-1.amazonaws.com/dev", requestOptions) .then(response => response.text()) .then(result => alert(JSON.parse(result).message)) .catch(error => console.log('error', error)); } </script>

</body>

This is the code for my html form, I don't understand what's wrong in it because when I submit the form, I get a message of 'undefined'. My lambda function is mostly correct since I am getting the data in dynamoDB through it when I test the function.

已提问 1 年前335 查看次数
1 回答
0

I think to best understand, it would be better to see your lambda function. You should probably write some logs in the function to understand what the form is actually sending to your lambda function so you can see which part is undefined.

profile picture
JFoxUK
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则