@SpardaPrime

Не получается отправить форму на сервер?

Есть такой вот код при заполнении инпута номер телефона должен отправить на сервер.Сервер использую локальный
(Open Server) , при заполнении поля и отправке перезагружает страницу полностью и во вкладке нетворк передается такой вот файл
5e87217d6fec7631990376.jpeg
let message = {
        loading: 'Загрузка...',
        success: 'Спасибо! Скоро мы с вами свяжемся!',
        failure: 'Что-то пошло не так...'
    };

    let form = document.querySelector('.main-form'),
        input = form.getElementsByTagName('input'),
        statusMessage = document.createElement('div');

        statusMessage.classList.add('status');

    form.addEventListener('submit', function(event) {
        event.preventDefault();
        form.appendChild(statusMessage);

        let request = new XMLHttpRequest();
        request.open('POST', 'server.php');
        request.setRequestHeader('Content-type', 'application/json; charset=utf-8');

        let formData = new FormData(form);

        let obj = {};
        formData.forEach(function(value, key) {
            obj[key] = value;
        });
        let json = JSON.stringify(obj);

        request.send(json);

        request.addEventListener('readystatechange', function() {
            if (request.readyState < 4) {
                statusMessage.innerHTML = message.loading;
            } else if(request.readyState === 4 && request.status == 200) {
                statusMessage.innerHTML = message.success;
            } else {
                statusMessage.innerHTML = message.failure;
            }
        });

        for (let i = 0; i < input.length; i++) {
            input[i].value = '';
        }
    });


});
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fzero0
@Fzero0
Вечный студент
а так неработает?
JSON.stringify(formData);
Ответ написан
Если в примере выше убрать последнюю строчку `});` то всё работает
https://jsfiddle.net/1yfqnx6s/2/

Я бы только добавил return false в конце `form.addEventListener('submit', function(event) {`
И третий параметр явно указал как true в `request.open('POST', 'server.php', true);`
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы