Ao fazer o get recebo o erro 403 forbidden. Ao acessar a url "https://aluracar.herokuapp.com/login" é retornado as seguintes informações: {"mensagem":"Usuário não cadastrado!"}
Utilizei o login e senha: "joao@alura.com.br" "alura123"
Ao fazer o get recebo o erro 403 forbidden. Ao acessar a url "https://aluracar.herokuapp.com/login" é retornado as seguintes informações: {"mensagem":"Usuário não cadastrado!"}
Utilizei o login e senha: "joao@alura.com.br" "alura123"
Eu fiz um Ionic Serve no projeto do curso, testei com a senha que você passou e o login está OK. O que pode estar acontecendo é que os dados de login não estão sendo enviados para a página. Se você acessa direto esse link, vai dar exatamente este erro.
Segue abaixo os meus arquivos, talvez tenha faltando alguma coisa:
service.js
angular.module('starter')
.service('CarroService', function($http){
var url = 'https://aluracar.herokuapp.com/';
return{
obterCarros : function(){
return $http.get(url).then(function(response){
return response.data;
});
},
salvarPedido : function(pedido){
return $http.get(url + "salvarpedido" , pedido).then(function(response){
return "Deu certo.";
});
},
realizarLogin: function(dadosDoLogin){
return $http.get(url + "login" , dadosDoLogin).then(function(response){
return response.data;
});
}
}
});
controller.js (apenas a parte de login)
angular.module('starter')
.controller('loginController', function($scope, CarroService, $ionicPopup, $state, $rootScope){
$scope.login = {};
$scope.realizarLogin = function(){
///alert($scope.login.email);
var dadosDoLogin = {
params : {
email : $scope.login.email,
senha : $scope.login.senha
}
}
CarroService.realizarLogin(dadosDoLogin).then(function(dados){
$rootScope.usuario = dados.usuario;
//$state.go('listagem');
//if(dados.status === 200){
$ionicPopup.alert({
title: 'Seja bem-vindo',
template: 'Login efetuado com sucesso.'
});
$state.go('app.listagem');
//}
},
function(erro){
$ionicPopup.alert({
title: 'Opa!',
template: 'Email ou senha incorretos'
});
});
}
});
login.html
<ion-view>
<ion-header-bar>
<h1>Olá, faça seu login</h1>
</ion-header-bar>
<ion-content>
<div class="list">
<form ng-submit="realizarLogin()">
<label class="item item-input">
<span class="input-label">Email</span>
<input type="text" placeholder="E-mail" ng-model="login.email">
</label>
<label class="item item-input">
<span class="input-label">Senha</span>
<input type="password" placeholder="Senha" ng-model="login.senha">
</label>
<button class="button button-block button-positive" type="submit">Entrar</button>
</div>
</form>
</ion-content>
</ion-view>
Vc tem q passar os parametros na URL caso queira fazer uma chamada GET usando um browser:
https://aluracar.herokuapp.com/login?email=joao@alura.com.br&senha=alura123
E pela aplicação vc tem q fazer igual o Daniel falou.
No meu caso, o problema foi ter usado o autocomplete do eclipse, ao invés de params:{} ele criou Param:{} fazendo com que os dados nao fossem enviados.