1

我想要来自 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;
}

?>

其中 data->output 包含获取的行。

请帮帮我。

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

4

2 回答 2

4

看起来你想要请求处理 http://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html

于 2012-11-02T13:04:25.467 回答
0

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

在控制器中设置:

$this->layout = 'ajax';
于 2013-06-28T14:34:08.830 回答