Token csrf do Codeigniter com solicitação ajax (erro do servidor interno de 500)

Estou tendo dificuldade em tentar fazer uma solicitação ajax através do meu formulário CI tendo o token csrf ativado. Eu tenho feito uma pesquisa longa e eu encontrei a mesma solução publicada em todas as questões relacionadas a esta que está adicionando o token val aos dados serializados na solicitação ajax. Eu fiz isso no meu ajaxSetup, eu recebo o token, mas ainda estou com o mesmo problema. Aqui está o meu código.

//AJAX Setup $.ajaxSetup({ data:{ csrf_test_name: $("input[name='csrf_test_name']").val() } }); //Function ajax login $("form#login").on("submit", function(e){ var $this = $(this); var mensaje = $("div.msglogin"); $.ajax({ type: "POST", url: $this.attr("action"), data: $this.serialize(), beforeSend: function() { mensaje.html('

Iniciando..

'); } }) .done (function(data){ console.log($this.serialize()); if(data == "redirect"){ window.location.replace($("input#baselogin").val()); }else{ mensaje.html(data); } }) e.preventDefault(); });

Isto é o que eu recebo quando eu console.log $ this.serialize () o que significa que o token está sendo enviado

 csrf_test_name=4a4d6eb47fc8f0c8e932b3b56a4eb9c5&usuario=dan&password=meaannn 

Qualquer ajuda será apreciada.

Adicione o token CSRF à sua opção de data antes de publicar:

  $.ajax({ type: "POST", url: $this.attr("action"), data: {'security->get_csrf_token_name(); ?>':'security->get_csrf_hash(); ?>',/*....your data....*/}, beforeSend: function() { mensaje.html('

Iniciando..

'); } })

O token CSRF precisa ser enviado com cada solicitação para que seja especificado pelos dados. A declaração do echo faz isso. Você pode adicionar isso separadamente e serializar, mas mostrei o que está faltando.