1
resposta

Duvida... Não consegui fazer o código funcionar o console não mostra o erro

Com o servidor ativo aparece o seguinte erro Access to XMLHttpRequest at 'http://localhost:3000/placar' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

insi
$("#botao-placar").click(mostraPlacar);
$("#botao-sync").click(sincronizaPlacar);

function inserePlacar(){

    var corpoTabela = $(".placar").find("tbody");
    var  usuario = "Ricardo";

    var numPalavras = $("#contador-palavras").text();
    var linha =  novaLinha(usuario,numPalavras);
    linha.find(".botao-remover").click(removeLinha);


    /* inserindo uma nova linha no fim da tabela*/

    corpoTabela.prepend(linha);
    $(".placar").slideDown(500);
    scrollPlacar();


    /* 
        Mas podemos inserir uma nova linha na tabela  no inicio da tabela
        utilizando o metodo .prepend(linha)
    */
}  

function scrollPlacar(){
     var posicaoPlacar = $(".placar").offset().top;
     $("body").animate({
         scrollTop: posicaoPlacar+"px"
     }, 1000);
}

function novaLinha(usuario,palavras){
    var linha = $("<tr>");
    var colunaUsuario = $("<td>").text(usuario);
    var colunaPalavras = $("<td>").text(palavras);
    var colunaRemover = $("<td>");

    var link = $("<a>").attr("href","#").addClass("botao-remover");
    var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");
    link.append(icone);

    colunaRemover.append(link);
    linha.append(colunaUsuario);
    linha.append(colunaPalavras);
    linha.append(colunaRemover);
    return linha;

}

function removeLinha(){
        event.preventDefault();
        var linha = $(this).parent().parent();
        linha.fadeOut(1000);/* função esmanhecer */
        setTimeout(function(){
            linha.remove();
        },1000);    
}

function mostraPlacar(){
    $(".placar").stop.slideToggle(600);
}

function sincronizaPlacar(){
    var placar = [];
    var linhas = $("tbody>tr");

    // interagindo com a partir do comando each

    linhas.each(function(){
        var usuario = $(this).find ("td:nth-child(1)").text();
        var palavras = $(this).find ("td:nth-child(2)").text();

        var score = {
            usuario: usuario,
            pontos: palavras
        };

        //colocando os valores para dentro do  array placar o objeto score
        placar.push(score);
    });

        // criando um objeto  dados em javascipty para enviar para a URL
    var dados = {
        placar: placar
    };

    $.post("http://localhost:3000/placar", dados, function(){
        console.log("salvou o placar no servidor");
    })



}ra seu código aqui
1 resposta

Olá Wagner, tudo bem com você?

Então esse erro é bem fácil de ser solucionado, para isso é preciso só realizar algumas etapas:

  • Abra a pasta Servidor
  • Entre na pasta config e abra o arquivo express.js

  • Provavelmente terá algumas linhas comentadas

app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
  • Descomente essas linhas e tente novamente :)

Caso não funcione me avise :)

Abraços e Bons Estudos !