如何在codeigniter控制器中接收ajax json数据

时间:2013-08-13 04:00:15

标签: php jquery ajax codeigniter

在客户端,我有:

var postData = {
    "id" : id,
    "message" : message
};

console.log(postData);

$.ajax({
    type: "POST",
    url: "controller/function",
    data: postData, 
    success: function(){
        alert(id + ' ' + message);
    }
});

这似乎工作正常,因为我可以在chrome dev工具中看到正确的帖子参数。在我的codeigniter控制器中,我尝试过:

echo 'postid' . $_POST['id'].' '.$_POST['message'];

$postData=$this->input->post('id');

var_dump($postData); exit;

我得到了:

Message: Undefined index: id
Message: Undefined index: message

boolean(false)

$_POST数组为空。

我该如何解决这个问题?谢谢你的帮助

4 个答案:

答案 0 :(得分:1)

您可以在ajax选项中添加dataType:'json'

$.ajax({
       type: "POST",
       url: "controller/function",
       data: postData,
       dataType:'json',
       success: function(){
           alert(id + ' ' + message);
       }
});

答案 1 :(得分:0)

您是否将CI配置为使用CSRF保护?如果是,您需要将CSRF字段和值包含在POST请求中。

答案 2 :(得分:0)

$.ajax({
    type: "POST",
    url: "controller/function",
    data: postData, 
    success: function(data){
        alert(data.id + ' ' + data.message);
    }
});

ajax返回数据中的json对象,你忘了在函数中写入数据

答案 3 :(得分:0)

在客户端为dataType:'json'添加$.ajax参数。