Vormi saatmine AJAX-i kaudu FormData abil JavaScriptis

Abil FormData saab automaatselt kõik vormi väljad saata serverile. Vaatame, kuidas seda teha.

Olgu meil järgmine vorm, kus sisenditele on antud atribuudid name:

public/index.html<form action="" method="GET">
  <input name="num1">
  <input name="num2">
  <input type="submit">
</form>

Saadame selle vormi AJAX-i kaudu. Alustuseks hankime vormile viida muutujasse:

public/client.jslet form = document.querySelector('form');

Nüüd määrame päringu kehas andmetena objekti FormData. Ja edastame objektile parameetrina viida vormile:

public/client.jsform.addEventListener('submit', function(event) {
  let promise = fetch('/handler/', {
    method: 'POST',
    body: new FormData(this) // edastame viida vormile
  });
  
  event.preventDefault();
});

Tulemusena saame serveris sisendite väärtused kätte nende nimede järgi atribuutidest name:

server.jsexport default {
  '/handler/': function({post}) {
    console.log(post.num1);
    console.log(post.num2);
    return 'vormi andmed vastu võetud';
  }
}
Задание 1

Antud on vorm viie sisendiga, kuhu sisestatakse numbrid. Saadake see vorm serverile POST meetodil. Olgu serveril ülesandeks leida sisestatud numbrite aritmeetiline keskmine ja saata tulemus tagasi brauserisse.