onchange 使用 ajax、codeigniter、dropdown、启用 CSRF 令牌

问题描述

我想根据宗教生成种姓下拉列表,下面是我的 Ajax 代码

<script type="text/javascript">
    //Generating CSRF Token
    var CFG = {
        url: '<?PHP echo $this->config->item('base_url');?>',csrf_test_name: '<?PHP echo $this->security->get_csrf_hash();?>'
    };
$(document).ready(function($){
    //Append to Ajax
    $.ajaxSetup({data: {token: CFG.csrf_test_name}});
    $(document).ajaxSuccess(function(e,x) {
        var result = $.parseJSON(x.responseText);
        $('input:hidden[name="token"]').val(result.token);
        $.ajaxSetup({data: {token: result.token}});
    });

 // Dropdown Religion on change
 $('#religion_id').change(function(){
        var religion_id = {
                        religion_id:$('#religion_id option:selected').val()  
                }; 
        console.log(religion_id);
        $.ajax({
            type: "POST",url: "<?PHP echo site_url('policy/GetCaste'); ?>",data:religion_id,dataType:"json",//return type expected as json
            success: function(CasteRes){
                   $.each(CasteRes,function(key,val){
                        var opt = $('<option />'); 
                        opt.val(key);
                        opt.text(val);
                        $('#caste_id').append(opt);
                   });
            },});
    });
});
</script>

问题是 403 禁止从 ajax 请求访问 CodeIgniter 控制器。在我的 config.PHP 文件中我改变了:

$config['csrf_token_name'] = 'csrf_test_name';

如何解决这个问题?提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)