Php Codeigniter Ajax Post不工作

Php Codeigniter Ajax Post不工作,php,jquery,ajax,codeigniter,post,Php,Jquery,Ajax,Codeigniter,Post,大家好,我正在尝试为喜欢和不喜欢的评论创建一个简单的投票,但是我想用jqueryajax来做,所以当有人喜欢时,我不想刷新页面 这是我的jquery代码 $(document).ready(function(){ $(".vote-btn").click(function() { var voteId = this.id; var upOrDown = voteId.split('_'); // alert(upOrDown); =

大家好,我正在尝试为喜欢和不喜欢的评论创建一个简单的投票,但是我想用jqueryajax来做,所以当有人喜欢时,我不想刷新页面

这是我的jquery代码

$(document).ready(function(){
      $(".vote-btn").click(function() {
        var voteId = this.id;
        var upOrDown = voteId.split('_'); 
        // alert(upOrDown); = provides -->  id,name
        // var all = 'voteId:'+upOrDown[0]+ ',upOrDown:' +upOrDown[1];
        // alert(all);

        $.ajax({
            type: "POST",
            url: "http://localhost/Dropbox/cipr/index.php/demo",
            cache: false,
            dataType:'json',            
            data:{'voteId='+upOrDown[0] + '&upOrDown=' +upOrDown[1],
            success: function(response){                
                try{
                    if(response=='true'){   
                        var newValue = parseInt($("#"+voteId+'_result').text()) + 1;            
                        $("#"+voteId+'_result').html(newValue);
                    }else{
                        alert('Sorry Unable to update..');
                    }
                }catch(e) {     
                    alert('Exception while request..');
                }       
            },
            error: function(){                      
                alert('Error while request..');
            }
         });
    });
});
这是我的控制器代码Demo.php

<?php
这是我的模型代码sygjerimet.php

<?php 
}

这是我的视图代码

<?php
          $query = $this->db->query('SELECT * FROM pr_sygjerimet');

            foreach ($query->result() as $row)
            {
                echo "<div class='sygjerimi'>";
                echo htmlspecialchars($row->permbajtja);
                if(!$log_in):
                echo '<br>';
                echo ' <button id="'.$row->ID.'_votedown" class="vote-btn"><i class="fa fa-thumbs-down">'.htmlentities($row->vote_down).'</i></button> ';
                echo ' <button id="'.$row->ID.'_voteup" class="vote-btn"><i class="fa fa-thumbs-up">'.htmlentities($row->vote_up).'</i></button> ';
                endif;
                echo "</div>";
            }

        ?>

如果有人能帮忙,那就太好了:)谢谢

很可能这就是CI CSRF保护;如果您使用POST,CI会自动检查CSRF隐藏字段,因为您是自己构建ajax POST的,所以它不会发送隐藏字段,所以它会对您进行跟踪

检查config/config.php文件中的几行
$config['csrf_*']
。您可以禁用(但我不建议这样做)。您还可以在jQuery中序列化表单并发送它,它应该适合您,并使您免受CSRF攻击

为了排除这种情况,您可以禁用“csrf_保护”,如果它起作用,您可以再次启用它,然后更改javascript以序列化表单,并将其用作ajax帖子的数据。

试试这个

$.ajax({
    //pull the toke csrf like this
    data:{'<?php echo $this->security->get_csrf_token_name();?>':'<?php echo $this->security->get_csrf_hash();?>'},

});
$.ajax({
//像这样拉动toke csrf
数据:{'':''},
});

您是否检查了在没有AJAX的情况下直接调用该URL会发生什么情况?AJAX URL路径是否正确?请尝试使用error:function(xhr、ajaxOptions、thrownError){definition要查看确切的错误是什么,根据AJAX调用中的
dataType
,您似乎没有回显任何JSON。@raidenace我只尝试了它返回的url,但结果是错误的谢谢您提供的这些信息……我已经花了4个小时寻找这个问题
<?php
          $query = $this->db->query('SELECT * FROM pr_sygjerimet');

            foreach ($query->result() as $row)
            {
                echo "<div class='sygjerimi'>";
                echo htmlspecialchars($row->permbajtja);
                if(!$log_in):
                echo '<br>';
                echo ' <button id="'.$row->ID.'_votedown" class="vote-btn"><i class="fa fa-thumbs-down">'.htmlentities($row->vote_down).'</i></button> ';
                echo ' <button id="'.$row->ID.'_voteup" class="vote-btn"><i class="fa fa-thumbs-up">'.htmlentities($row->vote_up).'</i></button> ';
                endif;
                echo "</div>";
            }

        ?>
alert('Error while request..');
$.ajax({
    //pull the toke csrf like this
    data:{'<?php echo $this->security->get_csrf_token_name();?>':'<?php echo $this->security->get_csrf_hash();?>'},

});