如何从Codeigniter中的JS文件发送CSRF令牌?

时间:2019-05-06 06:11:31

标签: php codeigniter

我想使用Ajax通过JS File在Codeigniter中发送CSRF令牌。这是我的代码

// main.js (JS File)
 $("button").on("click",function(){
    var csrf_name = $("#CSRF").attr("name");
    var csrf_token = $("#CSRF").val();
        $.ajax({
            url: "Test/demo",
            type: "POST",
            data:{
                csrf_name: csrf_token ,
            },
            success: function(data)
            {
                alert(data);
            }

        });
});

它是测试控制器:

class Test extends CI_Controller
{
     public function demo()
     {
        echo "Success";
     }
}

1 个答案:

答案 0 :(得分:0)

这将在每个请求上发送ajax令牌。加载jquery后,应将其放在头文件中。

<script>
                var token = {}; // forgot this
                token['<?php echo $this->security->get_csrf_token_name() ?>'] = '<?php echo $this->security->get_csrf_hash() ?>';
                    jQuery.ajaxSetup({
                        data: token,
                        type: 'POST',
                        error: function (jqXHR, textStatus, errorThrown) {
                            if (jqXHR.status == 404) {
                                alert('AJAX page not found.');
                            } else {
                                console.error('AJAX Error: ' + textStatus + ': ' + errorThrown);
                            }
                        }
                    });
</script>