Задать вопрос
@King123456

При оповещении об успешной отправке неправильное сообщение?

По принципу работы отправляю данные по форме на модальном окне методом fetch, JSON формате,после отправки оповещаю что сообщение отправлено или что то пошло не так. Есть файл db.json он принимает данные все хорошо работает. Запустил openserver,json-server ошибок нету,консоли тоже. Но все вводит сообщение что-то пошло не так. В чем может быть причина?

Вот мой код js
const forms = document.querySelectorAll('form');
    
    const message = {
        loading:'img/spinner.svg',   
        success:'Спасибо! Мы с вами свяжемся',
        failure:'Что-то пошло не так...'
    };

    forms.forEach(item => {
        bindpostData(item);
    });

    const postData = async(url,data) => {
        const res = await fetch(url, {
            method:"POST",
            headers:{
            'Content-type':'application/json'
        },
        body: data
        });

        return await res.json();
    };

    function bindpostData(form) {
        form.addEventListener('submit',(e) => {
            e.preventDefault();
     
    const statusMessage = document.createElement('img');
        statusMessage.src = message.loading;
        statusMessage.style.cssText = `
            display:block;
            margin:0 auto;
        `;
    form.append(statusMessage);
    
    const formData = new FormData(form);
   
    const json = JSON.stringify(Object.fromEntries(formData.entries()));
   
    postData('http://localhost:3000/requests',json)
        .then(data => data.text())
        .then(data => { 
            console.log(data);
            showThanksModal(message.success);
            statusMessage.remove();
        }).catch(() => {
            showThanksModal(message.failure);
        }).finally(() => {
            form.reset();
        });
    });
}

    function showThanksModal(message) {
        const prevModalDialog = document.querySelector('.modal__dialog');

    prevModalDialog.classList.add('hide');
    openModal();    

    const thanksModal = document.createElement('div');
    thanksModal.classList.add('modal__dialog');
    thanksModal.innerHTML = `
        <div class = "modal__content">
        <button data-close class="modal__close" type="button">
            <svg data-close  class="modal__close-icon">
                <use xlink:href="#close"></use>
            </svg>
        </button>
            <div class="modal__title">${message}</div>
        </div
        `;
        document.querySelector('.modal').append(thanksModal);
        setTimeout( () => {  
            thanksModal.remove(); 
            prevModalDialog.classList.add('show');
            prevModalDialog.classList.remove('hide');
            closeModal('.modal');
        },4000);


<?php
$_POST = json_decode(file_get_contents("php://input"),true);
echo var_dump ($_POST);
  • Вопрос задан
  • 39 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dimka59
убрать строчку .then(data => data.text())
Ответ написан
Ваш ответ на вопрос

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

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