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

まず、「エコー」を使用せず、「リターン」を使用することをお勧めします。コントローラーを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");

そして、コードイグナイター関数内で終了してから戻る方が良い

public function addschool() {
  $data = array("status" => "ok", "message"=> "something ");  
  echo json_encode($data);  
  return; 
}
于 2013-02-21T10:42:29.677 に答える
1

おそらくURLに問題があります。URLルーティングの問題の例を挙げましょう

たとえば、管理コントローラの index 関数が管理ホームページをロードするため、load メソッドの url 部分に「addschool」と書くだけで、ajax 呼び出しが addschool 関数に移動します。

連鎖は自動的に行われます。admin/addschool

しかし、たとえば、関数 admin/load_view が ur ビュー ページをロードするとします。URL に addschool と入力すると、連鎖が行われ、URL は次のようになります。

管理者/load_view/addschool

したがって、ビューページをロードしている codeigniter 関数を確認してから、適切なチェーンを使用する必要があります

于 2013-04-16T17:45:19.647 に答える