Backbone与CakePHP JSON响应

时间:2012-11-02 10:19:40

标签: json cakephp backbone.js

我想要来自cakePHP的JSON响应,我将使用backbone.js进行渲染。但我没有JSON响应,而是获得default.ctp内容以及JSON响应,我不知道为什么。有什么我不能在JSON响应中包含default.ctp内容吗?

这是我获取JSON的代码

<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, max-age=0, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);

//header('Content-type: text/json');
header('Content-type: application/json');
header('Pragma: no-cache');
//header("X-JSON: ".$content_for_layout);

$response['status'] = $status;
//$response['data']['titleForLayout'] = $title_for_layout;

$response['data']['validationErrors'] = $this->validationErrors;

$response['data']['sessionFlash'] = $this->Session->read('Message.flash.message');

//$response['data']['data'] = $this->data;
$response['data'][$this->request->params['controller']]['output'] = isset($output)?$output:null;

$output = json_encode($response);

if (isset($this->params['url']['callback'])) {
    echo $this->params['url']['callback'] . '(' . $output . ');';
} else {
    echo $output;
}

&GT;

其中data-&gt;输出包含提取的行。

请帮帮我。

我得到JSON响应,但问题是获取我不想要的响应周围的default.ctp内容。有办法吗?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

您需要将布局设置为ajax或空布局。

在控制器中设置:

$this->layout = 'ajax';