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?

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