Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Consumir API Node pela kinghost

Professor, estou precisando muito da sua ajuda!

Estamos subindo nossa aplicação para o servidor web (kinghost) depois de muita luta conseguimos fazer a api rodar, só que agora não estamos conseguindo fazer o vue se comunicar a ela, está dando este erro:

Failed to load "endereço do site": The 'Access-Control-Allow-Origin' header contains the invalid value ''. Origin "endereço do site" is therefore not allowed access.

como podemos proceder?

1 resposta
solução!

Bom dia Fabiano! O problema é que sua API não habilitou CORS. Toda vez que sua APP web esta em um domínio/porta diferente da aplicação que você deseja se comunicar, no caso da API, você precisa habilitar CORS. Isso porque devido a SOP (same origin policy) o navegador só pode fazer requisição para o mesmo domínio no qual a página foi carregada.

Se a sua API é node com express, dá uma olhada nesse módulo https://github.com/expressjs/cors.

Sem esse módulo, você pode fazer esse processo na mão, mas sugiro usar o módulo, tá? Para efeito de curiosidade, o código seria assim:

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");
  res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
  next();
});

Mas como eu disse, o módulo do Express fará tudo isso para você. Se não usa API Node.js, esses cabeçalhos são os especiais que você precisa.

Para saber mais sobre CORS tem esse link aqui:

https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS

Sucesso e bom estudo, meu aluno!