我正在使用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
答案 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方法。
答案 2 :(得分:0)
如果我没有错,那么如果你在Firebug控制台中看到你会看到js中的错误,因为你没有使mydata字符串正确。替换
var mydata = '<?php echo $this->session->userdata('username'); ?>';
与
var mydata = "<?php echo $this->session->userdata('username'); ?>";