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

problema no service salvarpedido

Estou tentando enviar os dados para o servidor, porém sempre recebo a mesma mensagem de erro abaixo, alguém pode me ajudar?

GET http://aluracar.herokuapp.com/salvarpedido?carro=C3+1.0&email=teste@gmail.com&endereco=rua+dos+testes+12&nome=teste

XMLHttpRequest cannot load http://aluracar.herokuapp.com/salvarpedido?carro=C3+1.0&email=teste@gmail.com&endereco=rua+dos+testes+12&nome=teste. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. The response had HTTP status code 500.

Segue meu service, controller e form:

angular.module('starter')
.service('CarroService', function($http) {
    var url = 'http://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.";
            });
        }
    }
});

angular.module('starter')
    .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.$ionicPopup,
                    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'
                });
            });
        }
    });

<ion-view>
    <ion-nav-title>Estamos Quase lá...</ion-nav-title>
    <ion-content>
        <div class="card">
            <div class="item item-divider">
                <h2>{{carroFinalizado.nome}}</h2>
                <h3>R{{carroFinalizado.preco | currency}}</h3>
            </div>
            <div class="item item-text-wrap">
                <div class="list">
                    <label class="item item-input item-stacked-label">
                        <span class="input-label">Nome Completo</span>
                        <input ng-model="pedido.nome" type="text">
                    </label>
                    <label class="item item-input item-stacked-label">
                        <span class="input-label">Endereço</span>
                        <input ng-model="pedido.endereco" type="text">
                    </label>
                    <label class="item item-input item-stacked-label">
                        <span class="input-label">E-mail</span>
                        <input ng-model="pedido.email" type="text">
                    </label>
                   <a class="button button-positive button-full" ng-click="finalizarPedido()" href="">Realizar um sonho</a>
                </div>
            </div>
        </div>
    </ion-content>
</ion-view>
3 respostas
solução!

Olá Edson.

Você não está enviando o preço.

Olha como está o preço que você informou.

preco : $scope.carroFinalizado.preco.$ionicPopup,

Acho que você arrumando isso na sua controller, já deve funcionar.

Foi isso mesmo meu caro, ficou um trecho de código perdido pelo caminho. Grato!

Maravilha Edson. Quando precisar é só postar as duvidas aqui no forum

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