Xmlhttprequest does not find execute (Duplicate)

Asked

Viewed 23 times

0

In the last question (Xmlhttprequest cannot find run) was struggling what was going wrong in my code, so I followed some tutorials on youtube to see what the demonstration is like in practice, however it didn’t work anything, it seems that it doesn’t read the commands Xmlhttprequest.

JS

window.onload = () => {

    //Constantes que são pegas do Formulário
    const name = document.getElementById('name');
    const mail = document.getElementById('mail');
    const message = document.getElementById('message');
    const sendMessage = document.getElementById('sendMessage');
    const regex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
    sendMessage.addEventListener('click', (e) => {

        //Validação de Nome
        if (name.value == undefined || name.value == "" || name.value == null) {
            alert('Nome não corresponde com o campo');
            name.focus();
            e.preventDefault();
        }
        //Validação de E-mail
        if (regex.test(!mail.value) || mail.value == "" || mail.value == undefined || mail.value == null) {
            alert('E-mail não corresponde com o campo');
            mail.focus();
            e.preventDefault();
        }
        //Validação de mensagem
        if (message.value == undefined || message.value == "" || message.value == undefined) {
            alert('Mensagem não corresponde com o campo');
            message.focus();
            e.preventDefault();

            //Se todas as condições forem aprovadas então vai enviar as informações do e-mail e o regex
            //para o mail.php

        } else {
            function reqListener () {
                console.log(this.responseText);
              }

              var oReq = new XMLHttpRequest();
              oReq.addEventListener("load", reqListener);
              oReq.open("GET", "http://www.example.org/example.txt");
              oReq.send();
            /*
            Isso deve ser feito após o processo do XMLHTTPREQUEST dar certo
            alert('Enviado com sucesso');
            sendMessage.style.display = 'none';
            name.value = ' '
            mail.value = ' '
            message.value = ' '
            */

        }

    });

}

The part of Xmlhttprequest I took from the internet as an example of MDN itself, but it did not work, does not give error and does not return anything, as if it did not have the instructions. This error is in fact some error before Xmlhttprequest?

  • Open Google Chrome Devtools and go to the Network tab to see if he actually tried to submit a request or not even that...

  • So @Monneratrj, not even requisition he’s sending. It seems that Xmlhttprequest doesn’t even exist (I’ve already given a.log console to the object and returned normally, but the rest of the n commands work)

1 answer

0

Hello I would change your code to:

window.onload = () => {

    //Constantes que são pegas do Formulário
    const name = document.getElementById('name');
    const mail = document.getElementById('mail');
    const message = document.getElementById('message');
    const sendMessage = document.getElementById('sendMessage');
    const regex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
    sendMessage.addEventListener('click', (e) => {

        //Validação de Nome
        if (name.value == undefined || name.value == "" || name.value == null) {
            alert('Nome não corresponde com o campo');
            name.focus();
            e.preventDefault();
        }
        //Validação de E-mail
        if (regex.test(!mail.value) || mail.value == "" || mail.value == undefined || mail.value == null) {
            alert('E-mail não corresponde com o campo');
            mail.focus();
            e.preventDefault();
        }
        //Validação de mensagem
        if (message.value == undefined || message.value == "" || message.value == undefined) {
            alert('Mensagem não corresponde com o campo');
            message.focus();
            e.preventDefault();

            /*
            Se todas as condições forem aprovadas então vai enviar as informações
            do e-mail e o regex para o mail.php
            */

        } else {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    /*
                    Isso deve ser feito após o processo do XMLHTTPREQUEST dar certo
                    alert('Enviado com sucesso');
                    sendMessage.style.display = 'none';
                    name.value = ' '
                    mail.value = ' '
                    message.value = ' '
                    */
                } else {
                    /*
                    Não entendi a necessidade do reqListener, mas coloquei para gerar
                    logs das alterações dos status da request.
                    */
                    console.log(this.responseText);
                }
            }

            // Lembrar de alterar a URL (o 2o parâmetro) para algo válido
            xhr.open('GET', 'http://www.google.com/', true);
            xhr.send(null);

        }
    });
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.