What's wrong? (Uncaught (in promise) SyntaxError: Unexpected token & lt; in JSON at position 0)?

  • 0
    here is the code for submitting the data from the form

    document.addEventListener('DOMContentLoaded', function () {
      const form = document.getElementById('form');  
      form.addEventListener('submit', formSend)
    
      async function formSend(e) {
        e.preventDefault();
    
        let error = formValidate(form);
      
        let formData = new FormData(form); 
        if (error === 0){
          form.classList.add('_sending');
            let response = await fetch('mail.php', {
              method: 'POST',
              body: formData
            });
            if (response.ok){
              let result = await response.json();
              alert(result.message);
              form.reset();
              form.classList.remove('_sending');
            } else {
              alert('Ошибка');
              form.classList.remove('_sending');
            }
        } else{
          alert('Заполните все поля')
        }
      }
      
      function formValidate(form) {
        let error = 0;
        let formReq = document.querySelectorAll('._req');
    
        for (let index = 0; index < formReq.length; index++) {
          const input = formReq[index];    
           formRemoveError(input);
    
           if (input.classList.contains('_email')){
              if(emailTest(input)){
                formAddError(input)
                error++;
              }
           }else if(input.getAttribute("type") === "checkbox" && input.checked === false){
            formAddError(input)
            error++;
           } else{
             if (input.value === ''){
                formAddError(input)
                error++;
             }
           }
        }
        return error;
      }
    
        function formAddError(input) {
          input.parentElement.classList.add('_error');
          input.classList.add('_error')
        }
        function formRemoveError(input) {
          input.parentElement.classList.remove('_error');
          input.classList.remove('_error')
        }
        function emailTest(input) {
          return !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,8})+$/.test(input.value)
        }
    });

    Throws an error in
    JavaScript Sean Shepard, Jan 13, 2019

  • 1 Answers
  • 0
    No JSON comes from the server.
    Bennett Schaefer

Your Answer
To place the code, please use CodePen or similar tool. Thanks you!