前提:Kohana 框架已正常運行。以 jQuery 為例演示前後端配合。
$.ajax({
url: "/test/json", // test 為控制器,json 為 action,/ 表示相對站點根目錄
dataType: "json",
data: "id=1&name=jack", // 參數以查詢字符串形式傳遞
success: function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
}
});
public function action_json() {
$this->auto_render = FALSE; // 禁用視圖渲染
if ($this->request->is_ajax()) { // 驗證是否為 AJAX 請求
// 此處獲取數據邏輯,示例中省略
$arr = array('key1' => 'value1', 'key2' => 'value2');
echo json_encode($arr); // 建議直接輸出,避免 0 值被誤判
exit;
}
// 重要:JSON 僅支持 UTF-8 編碼,前端頁面必須為 UTF-8
}
$this->auto_render = FALSE 必須設置,否則會輸出視圖模板導致 JSON 解析失敗$this->request->is_ajax() 用於安全過濾非 AJAX 請求exit 終止執行,防止後續代碼輸出干擾 JSON 格式