Ֆորմայի ուղարկում AJAX-ի միջոցով FormData JavaScript-ի օգնությամբ

FormData-ի օգնությամբ կարելի է ավտոմատ կերպով ուղարկել ֆորմայի բոլոր դաշտերը սերվեր: Եկեք տեսնենք, թե ինչպես է դա արվում:

Ենթադրենք ունենք հետևյալ ֆորման, որի ինպուտներին տրված են name ատրիբուտները:

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

Եկեք ուղարկենք այս ֆորման AJAX-ի միջոցով: Սկզբում ստացենք ֆորմայի հղումը փոփոխականի մեջ:

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

Այժմ հարցման մարմնում որպես տվյալներ նշենք FormData օբյեկտը: Իսկ հենց օբյեկտին պարամետրով փոխանցենք ֆորմայի հղումը:

public/client.jsform.addEventListener('submit', function(event) {
  let promise = fetch('/handler/', {
    method: 'POST',
    body: new FormData(this) // փոխանցում ենք ֆորմայի հղումը
  });
  
  event.preventDefault();
});

Արդյունքում սերվերում մենք կկարողանանք ստանալ ինպուտների արժեքները ըստ նրանց անունների name ատրիբուտներից:

server.jsexport default {
  '/handler/': function({post}) {
    console.log(post.num1);
    console.log(post.num2);
    return 'form data received';
  }
}
Задание 1

Տրված է հինգ ինպուտներով ֆորմա, որոնց մեջ մուտքագրվում են թվեր: Ուղարկեք այս ֆորման սերվեր POST մեթոդով: Թող սերվերը գտնի մուտքագրված թվերի միջին թվաբանականը և արդյունքը ուղարկի դեպի բրաուզեր: