Tento enviar uma solicitação POST do Angular 4 para o meu back-end do Laravel.
Meu LoginService tem este método:
login(email: string, password: string) {
return this.http.post(`http://10.0.1.19/login`, { email, password })
}
Eu me inscrevo neste método em meu LoginComponent:
.subscribe(
(response: any) => {
console.log(response)
location.reload()
},
(error: any) => {
console.log(error)
})
E este é o meu método de backend do Laravel:
...
if($this->auth->attempt(['email' => $email, 'password' => $password], true)) {
return response('Success', 200);
}
return response('Unauthorized', 401);
Minhas ferramentas de desenvolvimento do Chrome dizem que minha solicitação foi um sucesso com 200 códigos de status. Mas meu código Angular aciona o error
bloqueio e me dá esta mensagem:
Falha de HTTP durante a análise para http://10.0.1.19/api/login
Se eu retornar uma matriz vazia do meu back-end, funciona ... Então o Angular está tentando analisar minha resposta como JSON? Como posso desativar isso?
Você também deve verificar o JSON (não no DevTools, mas em um back-end). Angular HttpClient está tendo dificuldade em analisar JSON com
\0
caracteres e DevTools irá ignorar então, então é muito difícil de detectar no Chrome.Com base neste artigo
fonte
Eu tive o mesmo problema e a causa foi Que na hora de retornar uma string em seu backend (mola) você pode estar retornando como retorno "mola usada"; Mas isso não é analisado corretamente de acordo com a primavera. Em vez disso, use return "\" spring used \ ""; - Paz
fonte
Eu estava enfrentando o mesmo problema em meu aplicativo Angular. Eu estava usando a API REST RocketChat em meu aplicativo e estava tentando usar o
rooms.createDiscussion
, mas ocorreu um erro conforme abaixo.Eu tentei algumas coisas como mudar o,
responseType: 'text'
mas nenhuma funcionou. No final, descobri que o problema estava na instalação do RocketChat. Conforme mencionado no log de alterações do RocketChat, a APIrooms.createDiscussion
foi introduzida na versão 1.0.0, infelizmente eu estava usando uma versão anterior.Minha sugestão é verificar se a API REST está funcionando bem ou não antes de gastar algum tempo para corrigir o erro em seu código Angular. Usei o
curl
comando para verificar isso.Também estava recebendo um HTML inválido como resposta.
Em vez de uma resposta JSON válida como segue.
Assim, após atualizar para o RocketChat mais recente , consegui usar a API REST mencionada.
fonte