0

Im trying to POST data from a html form using javascript however on submission I believe no data is actually being sent because my alert is showing no data.

when i added an alert box

var jsonStr = JSON.stringify(FD);
      alert(jsonStr);

the output came up as "{}"

here is my full code below if anyone can spot my errora

<form class="emailentry" " method="post" name="myForm" id="myForm">
<label  for ="name">Name: </label><br>
<input type ="text"id="name" name="name: " ><br>
<label for ="emailad">Email: </label><br>
<input type ="email"id="emailad" name="emailad" ><br>
<input type= "submit" id="btn" name="submit" class="submitstyle">
</form>
<script>
    window.addEventListener( "load", function () {
  function sendData() {
    const XHR = new XMLHttpRequest();

    // Bind the FormData object and the form element
    const FD = new FormData( form );

    // Define what happens on successful data submission
    XHR.addEventListener( "load", function(event) {
        var jsonStr = JSON.stringify(FD);
      alert(jsonStr); // should present me the data i entered but it isnt
      alert("hi");
    } );

    // Define what happens in case of error
    XHR.addEventListener( "error", function( event ) {
      alert( 'Oops! Something went wrong.' );
    } );

    // Set up our request
    XHR.open( "POST", "ExampleUrl.ForStackOveerflow/post" );

    // The data sent is what the user provided in the form
    XHR.send( FD );
    

  }

  // Access the form element...
  const form = document.getElementById( "myForm" );

  // ...and take over its submit event.
  form.addEventListener( "submit", function ( event ) {
    event.preventDefault();

    sendData();
  } );
} );




</script>
MJ23
  • 23
  • 7
  • This would be MUCH easier with `jQuery's` [.post()](https://api.jquery.com/jquery.post/) or [.ajax()](https://api.jquery.com/jquery.ajax/) – Zak Jan 31 '22 at 15:53
  • FormData object is not serializable, but you're sending `FD`, not `jsonString`, hence the data is posted. – Teemu Jan 31 '22 at 15:54
  • Probably the server isn't set up to handle multipart form data, but we can't see the server-side code. – Quentin Jan 31 '22 at 15:56

0 Answers0