Jquery 从cakePHP控制器检索json数组

Jquery 从cakePHP控制器检索json数组,jquery,ajax,cakephp,controller,Jquery,Ajax,Cakephp,Controller,我想从cakePHP控制器返回一个JSON数组。实际上,我有一个jqueryclick事件,它应该向控制器(用URL指定)发送post、ajax或get调用,并且该控制器应该只返回数组。这对我来说很有意义,因为我不会创建一个视图文件,我会将响应直接发送给控制器,我可以设置头,回显json数组,还可以直接退出 我的输出在控制台上只显示“Array”,不回显数组中的任何参数。有什么想法吗 // jQuery code: $("selector").click(function() { $

我想从cakePHP控制器返回一个JSON数组。实际上,我有一个jqueryclick事件,它应该向控制器(用URL指定)发送post、ajax或get调用,并且该控制器应该只返回数组。这对我来说很有意义,因为我不会创建一个视图文件,我会将响应直接发送给控制器,我可以设置头,回显json数组,还可以直接退出

我的输出在控制台上只显示“Array”,不回显数组中的任何参数。有什么想法吗

// jQuery code:
$("selector").click(function() {
      $.post("/controller/view/param1/param2/",function(data) {
         console.log(data);
      } 
}

// code in my controller:
public function view($param1 = false, $param2 = false) {
       $array = array("Name" => "John");
       header("Content-type: application/json");
       echo $array;
      exit;
}

编辑:找到了解决方案-echo$array必须是echo json_encode($array)

哈哈,找到了解决方案:)我必须添加json_encode($array),不能只回显$array。如果其他人有好的建议或想法,请发送给他们以供将来参考。如果不发送任何内容,是否有使用“POST”的原因?写一篇文章需要2个请求,而只有1个使用GET/LOAD等:)如上所述,你不能只回显一个数组(我犯了一个愚蠢的错误),您必须使用PHP函数json_encode,该函数将数组编码为json对象,以便javascript可以使用它。让响应对象负责发送头会更干净——假设是cake2(Mauritz很遗憾忘记提到这一点)
public function view($param1 = false, $param2 = false) {
       $array = array("Name" => "John");
       header("Content-type: application/json"); // not necessary
       echo json_encode($array);
      exit;
}