我有Codeigniter和JSON的问题。这是我的编码:
$.post("Admin/Admin/addschool", {test: 'test'}, function(data){
if (data.status == 'ok')
alert(data);
else
alert(data);
}, "json");
......在我的控制器中:
public function addschool() {
$data = array("status" => "ok", "message"=> "something ");
echo json_encode($data);
exit();
}
但每次我的json回复我的整个视图的HTML,例如我的回复
<!doctype html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://localhost:10090/css/layout.css" />
<title>Administration</title>
<meta name="description" content="">
<meta name="author" content="">
</head>
答案 0 :(得分:2)
首先,最好不要使用“echo”,并使用“return”。尝试将控制器直接放到url上,看看你是否返回json
答案 1 :(得分:1)
尝试使用绝对网址
$.post("/Admin/Admin/addschool", {test: 'test'}, function(data){
if (data.status == 'ok')
alert(data);
else
alert(data);
}, "json");
最好返回然后退出codeigniter函数
public function addschool() {
$data = array("status" => "ok", "message"=> "something ");
echo json_encode($data);
return;
}
答案 2 :(得分:1)
可能是网址存在问题。让我举一个url路由问题的例子
让我们说,管理控制器索引函数加载管理主页,所以在加载方法中,在url部分,如果你只是写“addschool”,那么ajax调用将转到addschool函数。
链接自动完成,admin / addschool
但是比如说,函数admin / load_view 加载您的查看页面,现在,如果您在网址中键入addschool,将进行链接,并且网址将变为
管理员/ load_view / addschool
所以你必须检查加载视图页面的codeigniter函数,然后使用适当的链接