Cadastro com Laravel e Angular JS

7 respostas Resolvido
angularjavascriptlaravelphp7php
M

Boa noite!

Estou tentando cadastrar os dados de um form com um api feita com o laravel 5.1 e o angular JS, meu problema é que ao enviar o dados para salvar ele não pega os valores dos inputs e salva em branco no banco, segue minha aplicação:

Api:

// Cadastrando user
public function store(Request $request)
{
    $data = $request->all();
    return $this->userRepository->create($data);
}

Angular:

.controller('cadastroController', ['$scope', '$http', function ($scope, $http) {
    $scope.cadastroUsuario = function (user) {
        $http({
            method: "POST",
            url: 'http://localhost:8000/apiuser/store',
            data: user,
            headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
        })
    }
}])

Alguém ai pra me ajudar a identificar oq está acontecendo?

Agradeço

7 Respostas

P

vc ja tentou

  1. olhar no chrome developer tools o que esta indo no request ( o POST em questão )?
  2. adicionar um log no php pra mostrar o que ele recebeu?
  3. se ele salva tudo em branco no banco de dados, me parece que não existe validação alguma do que foi passado - nenhum campo é obrigatorio?
M

Na api ta funcionando corretamente já fiz alguns teste com o Postman, e os campos do form não são obrigatórios.

P

então o seu post tem algo errado, vindo do JS, certo?

M

Sim, creio q seja isso! olha ai o meu postman

M

Se eu coloco um console.log() ele printa os dados no console mais não envia para o banco!

//Cadastra users
.controller(‘cadastroController’, [’$scope’, ‘$http’, function ($scope, $http) {

$scope.cadastroUsuario = function (user) {
        console.log(user);
        $http({
            method: "POST",
            url: 'http://localhost:8000/apiuser/store',
            data: user,
            headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
        })

    }
}])

No console:

P
Solucao aceita

ola. olha na aba network o que vc realmente esta enviando…

pelo header content-type, vc esta enviando em www-form-urlencoded e não application/json

M

Realmente o problema era só esse peczenyj! valeu brother pela ajuda.

Alterei para o header para:

headers: {‘Content-Type’: ‘application/json; charset=UTF-8’}

Criado 7 de novembro de 2016
Ultima resposta 8 de nov. de 2016
Respostas 7
Participantes 2