Отправка форм методом GET в JavaScript

Формы могут быть отправлены двумя способами: методом GET или методом POST. Способ отправки формы регулируется атрибутом method формы.

По умолчанию метод отправки будет GET. Давайте, однако, укажем его в явном виде в нашей форме:

<form action="/handler/" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form>

Давайте теперь посмотрим, в чем разница между двумя методами отправки. В случае метода GET данные формы будут видны в браузере в виде так называемой строки параметров (query string), представляющей собой пары вида ключ=значение, где ключом будет имя элемента формы, а значением - введенные в него данные. При этом пары значений будут разделены амперсандами.

Данные, отправленные методом GET попадут на нашем сервере в свойство get объекта с данными:

export default { '/handler/': function(data) { console.log(data.get); // выведется в консоль сервера return 'form data received'; } }

Для краткости можно выполнить деструктуризацию, чтобы получить наши данные в отдельную переменную:

export default { '/handler/': function({get}) { console.log(get); // выведется в консоль сервера return 'form data received'; } }

Пример

Давайте проверим работу описанного на каком-нибудь примере. Пусть у нас есть форма, в инпуты которой вводятся числа:

<form action="/handler/" method="GET"> <input name="num1"> <input name="num2"> <input type="submit"> </form>

Пусть сервер найдет сумму полученных чисел от отправит результат обратно в браузер. Для начала получим отправленные числа:

export default { '/handler/': function({get}) { console.log(get.num1); console.log(get.num2); return 'form data received'; } }

Найдем теперь их сумму и отправим обратно в браузер:

export default { '/handler/': function({get}) { return Number(get.num1) + Number(get.num2); } }

Сделайте форму с пятью инпутами, в которые вводятся числа. Пусть сервер вычислит среднее арифметическое переданных чисел и отправит результат обратно в браузер.

Спросите у пользователя его имя, фамилию и отчество. Отправьте данные на сервер. Пусть сервер в качестве ответа возвращает сообщение об успешной отправке.

Спросите у пользователя дату в формате год-месяц-день. Отправьте дату на сервер. Пусть сервер проверит корректность формата даты. Если дата корректна - пусть он вернет сообщение об успехе, а если некорректна - сообщение о неудаче.