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

No 'Access-Control-Allow-Origin' header is present on the requested resource

Estou obtendo este erro ao salvar o pedido: 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. Tem algum problema com o servidor ?

7 respostas

Oi Humberto.

Esse erro está acontecendo pois algum dado enviado pelo app está com erro. Ele deveria enviar um erro, porém está com erro lá no servidor e está lançando esse erro estranho.

Post aqui sua função que salva o pedido pra gente ver oq pode ser, o erro está nela.

Aqui está o código do service:

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."
                });
            }

        }

    });

E aqui o código do Controller:

.controller('FinalizarPedidoController', function ($ionicPopup, $state, $stateParams, $scope, CarroService) {
        $scope.carroFinalizado = angular.fromJson($stateParams.carroEscolhido);

        $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: 'Erro',
                    template: 'Campos obrigatórios'
                });
            });
        }
    });

Oi.

O unico problema que estou vendo é uma virgula depois do ultimo atributo do objeto pedidoFinalizado.

Ele pode está dando erro ali e não enviando o objeto para o servidor.

Tire essa virgula e tente enviar novamente. Veja tbm como está sendo enviado a requisição usando a aba Network do seu navegador.

Oi Lazaro, retirei a vírgula e deu o mesmo problema. Vírgula no fim é válido em JS apesar de que não é válido em JSON. Pode ser algum problema com a rede onde trabalho também, mais tarde testarei em casa.

solução!

Veja como está sendo enviado a requisição pelo Network, assim a gente vê oq está sendo enviado para o servidor e assim a gente descobre o erro.

Aqui tem um exemplo de requisição que deve ser enviada:

https://aluracar.herokuapp.com/salvarpedido?carro=Astra+Sedan&email=asdasd&endereco=Asd&nome=TIago&preco=40300

Um aluno estava com esse problema tbm.

Olá Humberto Henrique,

Você provavelmente não está enviando nada errado para o servidor. Tente apenas rodar a aplicação no endereço 'http://127.0.0.1:8100' ao invés de 'http://localhost:8100'.

Conte pra gente se funcionar. Abraço.

To com o mesmo problema:

https://aluracar.herokuapp.com/salvarPedido?carro=Onix+1.6&email=vdsantos.e@gmail.com&endereco=vdsantos.e@gmail.com&nome=Eduardo&preco=35800

Essa foi a requisição montada e esses foram os erros:

Origem http://localhost:8100 não encontrada no cabeçalho Access-Control-Allow-Origin
NÃO LOCALIZADO - o servidor não localizou nada que corresponda ao URI (Uniform Resource Identifier) solicitado.

E pelo navegador:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Aug 14 21:09:26 UTC 2017
There was an unexpected error (type=Not Found, status=404).
No message available

Alguém teve o mesmo problema?

Descobri! Como eu sou burro! Meu request está errado! Eu usei salvarPedido ao invés de salvarpedido! Desculpa ai pessoal!

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