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

Tentando consumir com um arquivo externo

Estou tentando fazer login com uma arquivo js que eu fiz, mas está dando o erro Failed to load resource: net::ERR_CONNECTION_REFUSED no console do google

o arquivo com o qual estou tentando logar é esse:

function loga() {
console.log('olá')
  let usuario = {


    usuario: 'usuario',
    senha: '123456'
  };

  let xhr = new XMLHttpRequest();
  xhr.open("POST", "http://localhost/8080/login", true);
  xhr.setRequestHeader("Content-type", "application/json");

  xhr.addEventListener("load", function() {

    console.log(xhr.responseText);

    if (xhr.status == 200) {

  console.log('logado');  
}

if (xhr.status == 500) {

    console.log('erro 500')
  }
 });
  xhr.send(JSON.stringify(usuario));

}
loga()

Como posso consumir sem usar o postman ou o twig? obs: o código js eu já usei pra consumir outra api e costumava funcionar

3 respostas

Fala, Francis.

Provavelmente você está executando essa função JavaScript de um domínio diferente do domínio da API.

O browser não permite isso por padrão, e pra gente explicitar que quer permitir isso, precisa adicionar um cabeçalho na resposta:

Access-Control-Allow-Origin: algum-host

Substitua algum-host pelo domínio de onde seu código JS tá sendo executado ou por * para aceitar requisições de qualquer domínio (não recomendado)

Dale professor Mas de uma forma segura, como eu consigo consumir essa api com uma apk por exemplo? Tem algum curso aqui na plataforma que vai me ajudar a consumir?

solução!

Depende da tecnologia, Francis.

Se for utilizando uma tecnologia híbrida (Ionic, React Native), você vai ter que jogar um Access-Control-Allow-Origin: algum-host no cabeçalho da resposta mesmo.

Se a tecnologia for nativa, até onde eu sei, nenhuma ação é necessária, visto que ele não verifica esses cabeçalhos.

Como eu não desenvolvo aplicativos, não posso te afirmar com certeza.

Talvez os cursos sobre tecnologias mobile abordem esse assunto. Dá uma olhada lá. :-)