Ir ao conteúdo

Posts recomendados

Postado

E aí gurizada, beleza? Estou tendo problemas em passar dados entre ajax e laravel.

 

O meu js está assim

$(document).on('click', "#cad_academia", function(e){
    e.preventDefault();
    var cnpj     = $("#cnpj").val();
    var academia = $("#academia").val();
    var telefone = $("#telefone").val();
    var email    = $("#email").val();

    var data = {
        "cnpj" : cnpj,
        "academia" : academia,
        "telefone" : telefone,
        "email" : email
    }

    $.ajax({
        url: 'adicionar_academia',
        dataType: 'html',
        data: {data: data},
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
        method: 'post'
    }).done(function(msg){
        alert(msg);
    });
})

e o php está assim:

public function create(Request $data) {
        $academia = $data->academia;
        $telefone = $data->telefone;
        $email    = $data->email;
        $cnpj     = $data->cnpj;
        $status   = 3;
        $plano    = rand(0,2);

        // Faz a verificação no banco se já existe o e-mail cadastrado
        $verifica_email = DB::table('academias')->where('email', $email)->get();
        $verifica_cnpj  = DB::table('academias')->where('cnpj', $cnpj)->get();
        $msg = '';
        if(count($verifica_email) > 0) {
            $msg = 'O e-mail informado já existe na nossa base de dados. Favor, escolher outro e-mail para efetuar o cadastro';
            return view('criar', compact('msg'));

        } else if(count($verifica_cnpj) > 0){
            $msg = 'O cnpj informado já existe na nossa base de dados. Favor, escolher outro cnpj para efetuar o cadastro';
            return view('criar', compact('msg'));
        } else {
            $dados =
            [
                'academia'  => $academia,
                'email'     => $email,
                'telefone'  => $telefone,
                'status'    => $status,
                'cnpj'      => $cnpj,
                'plano'     => $plano,
                'created_at' => date('Y-m-d')
            ];

            DB::table('academias')->insert($dados);
            $msg = 'Cadastro realizado com sucesso!';
            return view('criar', compact('msg'));
        }
    }

Mas olhando o console.log aparece  o erro 419. O que pode ser? Vi muita coisa sobre o token do laravel mas ele está sendo passando no headers da chamada ajax.

  • 5 meses depois...
Postado

Cara, eu resolvi o meu problema assim, ao invés de jogar o token no header, eu deixei ele na página mesmo {{ csrf_field() }},

e através do javascript eu puxei o conteúdo que estava dentro do "input escondido", e como o laravel captura como "_token" enviei ele no mesmo formato!

 

function alertar(){
var valor = $("#valor").val();
var token = $("input[type=hidden][name=_token]").val();
var ajax = $.ajax({
		type: "POST",
		url: '{{ route("deposit.zero") }}',
		data: { amount: valor , _token: token }
	});
	ajax.done(function(){
		alert("Sucesso!");
	});
}

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!