Pessoal, estou com o mesmo problema, ainda não consegui solucionar.
O erro só acontece quando a função dá erro. Se preencher todos os dados funciona normal.
Erro no console:
...
GET https://aluracar.herokuapp.com/salvarpedido?carro=Sentra+2.0&preco=53500
XMLHttpRequest cannot load https://aluracar.herokuapp.com/salvarpedido?carro=Sentra+2.0&preco=53500. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.25.7:8100' is therefore not allowed access. The response had HTTP status code 500.
...
Já verifiquei o meu config.xml, tem a tag
<access origin="*"/>
Conseguem me ajudar?
Segue meu controller e meu service.js
angular.module('starter').controller('ListagemController', function ($scope, CarroService) {
CarroService.obterCarros().then(function (dados) {
$scope.listaDeCarros = dados;
})
}).controller('CarroEscolhidoController', function ($stateParams, $scope) {
$scope.carroEscolhido = angular.fromJson($stateParams.carro);
$scope.listaDeAcessorios = [{
"nome": "Freio ABS"
, "preco": 800
}, {
"nome": "Ar-condicionado"
, "preco": 1000
}
, {
"nome": "MP3 Player"
, "preco": 500
}];
$scope.mudou = function (acessorio, isMarcado) {
if (isMarcado) {
$scope.carroEscolhido.preco = $scope.carroEscolhido.preco + acessorio.preco;
}
else {
$scope.carroEscolhido.preco = $scope.carroEscolhido.preco - acessorio.preco;
}
}
}).controller('FinalizarPedidoController', function ($stateParams, $scope, $ionicPopup, $state, CarroService) {
$scope.carroFinalizado = angular.fromJson($stateParams.carro);
$scope.pedido = {};
$scope.finalizarPedido = function () {
var pedidoFinalizado = {
params: {
carro: $scope.carroFinalizado.nome
, preco: $scope.carroFinalizado.preco
, nome: $scope.pedido.nome
, endereco: $scope.pedido.endereco
, email: $scope.pedido.email
}
};
CarroService.salvarPedido(pedidoFinalizado).then(function (dados) {
$ionicPopup.alert({
title: "Parabéns"
, template: 'Você acaba de comprar um carro!'
}).then(function () {
$state.go('listagem');
});
}, function (erro) {
$ionicPopup.alert({
title: 'Deu erro'
, template: 'Campos obrigatórios'
});
});
};
});
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."
});
}
}
});
Valeu