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

Não consigo fazer request para meu backend

Olá e boa tarde, fiz meu backend com Django e DRF, e estou usando Angular para o front, porém não consigo fazer requisições, nem mesmo chega no servidor, mas quando eu uso o postman e cURL, por exemplo, não sei o que fazer mais.

Já desativei o CORS e tudo mais.

esse é o que o console responde.

message: "Http failure response for localhost:8000/perfil/: 0 Unknown Error"

name: "HttpErrorResponse"

ok: false

status: 0

statusText: "Unknown Error"
16 respostas

Boa noite, Thiago! Como vai?

Eu não entendi muito bem a situação! Quando vc utiliza o cURL e o postman tudo funciona como esperado é isso?

Justamente, aparentemente é problema de CORS quando uso o Angular, mas já desativei isso no backend

Entendi! Esse log de erro que vc postou na mensagem inicial do tópico aparece onde? No console do navegador? Caso não seja no console do navegador, o que o console imprime no momento que vc tenta fazer a requisição?

Isto é no console do navegador, não sei como mandar a foto "/

Pra compartilhar uma imagem vc pode tirar o print screen, fazer upload para um site de upload de imagens como esse aqui e depois mandar o link aqui pro fórum!

https://imgur.com/a/e52WBPB

Thiago, como está o código no Angular onde vc faz a requisição?

https://imgur.com/a/c9RfbPI

solução!

Calmaí, mas esse não é o código que está dando o problema! Veja que aqui o código de erro diz que a requisição sendo feita é para ucrania.imd.ufrn.br:8001/perfil/login/ e o código que vc me mandou está fazendo uma requisição para outro lugar... Eu preciso do código que envia a requisição para essa URL que aparece no erro.

https://imgur.com/a/c9RfbPI

Perdão, mas só mudava entre do servidor e no meu localhost, o erro continua o mesmo, como segue na imagem,

Opa, Thiago! Eu precisava ver o código exatamente como estava para confirmar ( ou não ) a minha suspeita sobre o problema que está acontecendo!

Mas esse último link que vc mandou ainda mostra apenas o código como localhost o que impediu que eu tirasse a dúvida que eu queria. Por isso, eu apenas posso dar um chute sobre o que está acontecendo!

Me parece que vc está esquecendo de colocar o http:// antes da URL ucrania.imd.ufrn.br:8001/perfil/login/! Configure a requisição para ser feita exatamente para a URL http://ucrania.imd.ufrn.br:8001/perfil/login/ e veja se as coisas funcionam como vc esperava!

Essa parte do "http://" deu certo, era realmente isso. Porém no back end está dando problema, quando faço um POST, diz que não ta recebendo o body.

Quando uso postman, no servidor estou recebendo <QueryDict: {'username': ['felipe'], 'senha': ['soares123']}>

Porém no Angular, ele recebe esse QueryDict vazio...

Segue o link do código angular com POST. https://imgur.com/X6UZjF5

Foto do backend, quando uso Angular: https://imgur.com/kiU9uao

Resolvi o problema é que no DRF para acessar os dados passados no post tem que user

self.request.data.get('username', None)

Engraçado que antes eu usava

Request.POST['username']

E funcionava normalmente com o postman, não entendi...

Gabriel muito obrigado pela paciencia!

Thiago, agora eu imagino que pode ser que o problema esteja na forma como a sua API está manipulando os dados recebidos. Afinal de contas, como você mesmo viu, a requisição foi enviada com sucesso!

Dá uma olhada nesse link onde o autor monta uma API com Django e a acessa com uma aplicação em Angular! Pode ser que te ajude!

Ah, e se esse primeiro link não solucionar, eu dei uma olhada nesses outros 2 links e me pareceram bons! Então vou deixar eles aqui pra vc também!

https://medium.com/swlh/django-angular-4-a-powerful-web-application-60b6fb39ef34

https://www.techiediaries.com/django-rest-framework-angular-2/

Se o problema persistir é só falar que a gente continua tentando resolver esse problema aí!

Grande abraço e bons estudos, meu aluno!

É, parece que minha previsão sobre o problema estar na API estava correta! Por nada, Thiago! Agora é só mandar ver aí no seu projeto! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e sucesso pra vc, meu aluno!

Obrigado mais 1 vez!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software