CodeIgniter控制器没有从ajax读取发布数据

时间:2014-01-03 13:01:59

标签: php jquery ajax codeigniter

我正在使用CodeIgniter,我正在尝试使用AJAX POST检索一些数据,但控制器无法读取我发送给它的帖子数据。

这是ajax电话:

$("#notifica").click(function(){
    var mydata = '<?php echo $this->session->userdata('username'); ?>';

    $.ajax({
         type: 'POST',
         url: '<?php echo base_url(); ?>notification_navbar/notifications',
         contentType: 'text',
         dataType : 'text',
         cache:false,
         data: mydata,
        success: function(msg){
            console.log('dsada');
           $(".notifi").html(msg);
        }
    });   
}); 

这是控制器:

class notification_navbar extends CI_Controller{

    function notifications(){
        $hello = 'hello world';
        var_dump($this->input->post());
        exit;
        echo $hello;
    }

}

我所犯的错误是var_dump为空,所以我在那里取错!

问题的解决方案是: 我必须将base_url更改为site_url

3 个答案:

答案 0 :(得分:0)

试试这个,

$("#notifica").click(function(){
    var mydata = {username:'<?php echo $this->session->userdata('username'); ?>'};

    $.ajax({
         type: 'POST',
         url: '<?php echo base_url(); ?>notification_navbar/notifications',
         contentType: 'text',
         dataType : 'text',
         cache:false,
         data: mydata,
        success: function(msg){
            console.log('dsada');
           $(".notifi").html(msg);
        }
    });   
}); 

class notification_navbar extends CI_Controller{

    function notifications(){
        $hello = 'hello world';
        var_dump($this->input->post());
        exit;
        echo $hello;
    }

}

答案 1 :(得分:0)

在发送数据之前尝试使用serialize方法。

form serialize

答案 2 :(得分:0)

如果我没有错,那么如果你在Firebug控制台中看到你会看到js中的错误,因为你没有使mydata字符串正确。替换

var mydata = '<?php echo $this->session->userdata('username'); ?>';

 var mydata = "<?php echo $this->session->userdata('username'); ?>";