1
resposta

O código funciona como o esperado, menos o console.log

O AJAX está capturando o objeto do arquivo json pelo id inserido no input e trocando a frase, como deveria ser.

Porém, o comando console.log(data) que está na função trocaFrase, para verificarmos o objeto também no console não está retornando nada. O console continua em branco. O que está acontecendo? Segue o código do arquivo frase.js:

$("#botao-frase").click(fraseAleatoria);
$("#botao-frase-id").click(buscaFrase);

function fraseAleatoria() {
    $("#spinner").toggle();
    $.get("http://localhost:3000/frases", trocaFraseAleatoria).fail(function() {
        $("#erro").toggle();
        setTimeout (function() {
            $("#erro").toggle();
        }, 1500)
    }).always(function() {
        $("#spinner").toggle();
    });
}

function trocaFraseAleatoria(data) {
    var frase = $(".frase");
    var numeroAleatorio = Math.floor(Math.random() * data.length);

    frase.text(data[numeroAleatorio].texto);
    atualizaTamanhoFrase();
    atualizaTempoInicial(data[numeroAleatorio].tempo);
}

function buscaFrase() {
    $("#spinner").toggle();
    var fraseID = $("#frase-id").val();
    var dados = {id: fraseID};

    $.get("http://localhost:3000/frases", dados, trocaFrase).fail(function() {
        $("#erro").toggle();
        setTimeout (function() {
            $("#erro").toggle();
        }, 1500);
    }).always(function() {
        $("#spinner").toggle();
    });
}

function trocaFrase(data) {

    console.log(data);

    var frase = $(".frase");
    frase.text(data.texto);
    atualizaTamanhoFrase();
    atualizaTempoInicial(data.tempo);
}
1 resposta

Oi Nathan, tudo bem? Isso no mínimo é estranho. Faz um zip do seu projeto e me disponibiliza pra que eu teste na minha máquina e ver se encontro algum problema?