在客户端,我有:
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
数组为空。
我该如何解决这个问题?谢谢你的帮助
答案 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
参数。