Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

requisição $.get("http://localhost:3000/frases",trocaFraseAleatoria);

quando fazemos a requisição $.get("http://localhost:3000/frases") os dados são retornados no argumento "data" esse argumento funciona como uma variável de trasporte? sempre que eu queira fazer uma requisição utilizando get isso irá acontecer, sendo um padrão?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

André, boa noite!

Sim, isso é um padrão, mas não necessariamente a variável se chama "data".

Você tem que se atentar ao posicionamento do argumento, e não o nome em sí.

Por exemplo:

<script>
    // exemplo 1
    // pegando o retorno, chamarei esse retorno de data
    $.get("http://localhost:3000/frases", function(data){
        console.log(data)
    });

    // exemplo 2
    // pegando o retorno, chamarei esse retorno de meusDados
    $.get("http://localhost:3000/frases", function(meusDados){
        console.log(meusDados)
    });


    // exemplo 3
    // pegando o retorno, chamarei esse retorno de data
    // mas obrigatpriamente esse retorno precisa ser em json
    $.get("http://localhost:3000/frases", function(data, 'json'){
        console.log(data);

        // seria algo em formato json
        // se não vier assim do servidor, o script consiedera como erro

        /*
           [{
                chave : valor
           },
           {
                chave : valor
           }]
        */
    });
</script>

Você pode usar várias funções com esta $.get, para tratar erros, sucesso, etc...

Eu particularmente prefiro usar a $.ajax sempre, mesmo com requisições mais simples.

Isso é uma questão de preferência, não há nenhum problema em usar o $.get ou $.post

E observe que comentei sobre o posicionamento do parâmetro da função de callback, usando o function como mostrado acima, você pode definir que tipo de retorno espera, se não informar ele tratará tudo como string.

No meu exemplo acima, se o retorno não for um json, será disparado um erro, podendo ser tratado com o seguinte exemplo:

<script>
    // exemplo 3
    // pegando o retorno, chamarei esse retorno de data
    // mas obrigatpriamente esse retorno precisa ser em json
    // verificando erro
    $.get("http://localhost:3000/frases", function(data, 'json'){
        console.log(data);

        // seria algo em formato json
        // se não vier assim do servidor, o script consiedera como erro

        /*
           [{
                chave : valor
           },
           {
                chave : valor
           }]
        */
    })
    .fail(function(){
        console.log("Oops! Algo saiu errado :(");
    });
</script>

O fail acima será disparado no caso do retorno não ser json como definido, ou se o código HTTP de retorno não for de sucesso, no caso é 200.

No seu caso, você passaria um parâmetro com os valores e pode usar o callback de retorno:

<script>
    // passando valor na requisicao
    $.get("http://localhost:3000/frases", trocaFraseAleatoria, function(data){
        console.log(data);
    })
    .fail(function(){
        console.log("Oops! Algo saiu errado :(");
    });
</script>

veja que o jquery entende que o segundo item são os parâmetros e o terceiro é o callback, simplemente pelo fato de ter três argumentos, sendo que o terceiro é uma função e o segundo não ser uma função.

Obrigado pelos esclarecimentos :D