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

Angular com spring boot data rest

Gostaria de contar com a alura para solucionar o seguinte erro que esta ocorrendo. Sei que foge um pouco do contesto do curso mas preciso muito entender isso. Meu restFull já esta me retornado meus dados em json, porem. Ao digitar http://localhost:8080/ ele me redireciona para paginas index que carrega o angular e os js. ate ai tudo bem. Ao digitar http://localhost:8080/ pessoa ele me devolve um json vindo direto do meu restFull . Até ai normal porque tenho um @restController recebendo essa requisição,. O problema começa agora. Ao digitar http://localhost:8080/ #/pessoa ele muda a url para http://localhost:8080/#%2Fpessoa eu não seu porque e como resolver. Ao digitar http://localhost:8080/paginaNaoExiste, ele me retornado um 404 do spring, sendo que deveria redirecionar para pagina index conforme o exemplo com .otherwise({rediretTo:'/pessoa'});

Ou seja meu controller de rota Angular do passado pala URL não funciona, apenas consigo navegar utilizando a tag dentro da pagina index;

3 respostas

Pode colocar o trecho de código que vc ta tentando se comunicar com sua api?

Opa, obrigado pelo retorno. Identifiquei oque esta acontecendo. O problema todo é que o History API do Html5 não esta habilitado no servidor que esta usando o Spring Data Rest com Tomcat. Saberia me informar como é possível configurar essa opção porque assim não irei precisar usar o # na URL.

solução!

Everson. A regra é a seguinte: seu servidor que hospeda sua app angular deve retornar index.html para qualquer requisição feita para ele, inclusive retornar index.html em caso de erro. (por isso que na prática separamos a API do APP Angular, cada uma é uma app isolada).

Só assim funcionará o modo history. É por isso que em SPA não podemos simplesmente hospedar nossa aplicação em um servidor estático, a não ser que seja igual ao AWS da Amazon que já é esperto em aplicações SPA.

Se isso for lhe causar muita dor de cabeça, fique com o #, Gmail usa até hoje.