所以我的问题是成功方法返回的数据是未定义的......
这是我的jquery代码:
$('document').ready(function(){
$('#save').click(function() {
var dataString = $("#stepform").serialize();
$.ajax({
url: "<?php echo base_url();?>create/save/<?php echo $row->id; ?>",
type: 'POST',
data: dataString,
success:function(response){
alert(response.status);
}
});//end ajax
return false;
});//end click
}); // end document ready
和php代码:
$serverResponse["status"] = 'it worked';
echo json_encode($serverResponse);
所有我从response.status得到的'未定义'...我无法让它工作!我有什么想法吗?
------------- ------------- EDIT
最后,我设法找到无效的json响应的解决方案。如果您使用的是codeigniter,则必须在json_encode之后编写exit()。像这样:
exit(json_encode($yourarray));
如果你只是回应它,那么它会给出一个解析错误。
答案 0 :(得分:1)
jQuery可能无法正确猜测您正在返回JSON。在dataType: "json"
参数对象上设置$.ajax
属性,或添加
header("Content-type: application/json");
发布之前的PHP脚本,或两者兼而有之。