@kychervasya

Как отправить форму html без jquery и php?

<form id="testForm">   
		<input class="input" id="name" name="name" type="text" value="">
		<input class="input" id="surname" name="surname" type="text" value="">
		<input class="input" id="age" name="age" type="text" value=""> 
		<textarea class="input" cols="20" id="description" name="description" rows="2"></textarea>
		<input type="submit" id="send" class="send button" value="Найти">
	</form>


Добрый день! Как отправить данную форму на сервер node.js с помощью javascript, но не jquery?
Предпочитаемый формат json. Отправляю xmlhttprequest'ом с помощью объекта FormData, но отправляется не json. А как быстро преобразовать данную форму с помощью javascript в json и отправить не знаю. Подскажите пожалуйста куда копать! Заранее благодарю
  • Вопрос задан
  • 833 просмотра
Решения вопроса 1
@kychervasya Автор вопроса
Решил таким методом. Всем спасибо. Может кому-то будет полезно.
var form = document.getElementById('testForm');
form.onsubmit = function (e) {
  e.preventDefault();

  var data = {};
  for (var i = 0, ii = form.length; i < ii; ++i) {
    var input = form[i];
    if (input.name) {
      data[input.name] = input.value;
    }
  }

  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'url', true);
  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
      xhr.onreadystatechange = function() {
        if (xhr.readyState != 4) return;
        if (xhr.status != 200) {
           alert(xhr.status + ': ' + xhr.statusText);
        } else {
           console.log(xhr.response);
           alert(xhr.responseText);
        }
      }

  xhr.send(JSON.stringify(data));
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Ну судя по всему вам нужно добавить только вызов Json.stringify() . Покопайте по запросу "javascript сериализация в JSON" или подобное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
21 мая 2024, в 21:01
29999 руб./за проект
21 мая 2024, в 21:00
2000 руб./за проект
21 мая 2024, в 20:43
1000 руб./в час