5

我对 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>
4

3 回答 3

2

首先,最好不要使用“echo”,而是使用“return”。试试把控制器直接放到url上看看你的返回json

于 2012-12-13T20:42:10.540 回答
1

尝试使用绝对 URL

$.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; 
}
于 2013-02-21T10:42:29.677 回答
1

应该是网址有问题。让我给你一个url路由问题的例子

比方说,管理控制器索引函数加载管理主页,所以在加载方法中,在 url 部分,如果你只写“addschool”,ajax 调用将转到 addschool 函数。

链接是自动完成的,admin/addschool

但是比如说,函数 admin/load_view 加载你的视图页面,现在如果你在 url 中输入 addschool ,就会发生链接,并且 url 会变成

管理员/load_view/addschool

因此,您必须检查正在加载视图页面的 codeigniter 函数,然后使用适当的链接

于 2013-04-16T17:45:19.647 回答