我正在构建一个CakePHP和jQuery的网页,我想让它变得更好,但也希望每个人都能访问它,所以我正在深入研究渐进式增强功能。在beforeRender()
中,我有这个简单的代码段,对于简单的请求非常有用:
public function beforeRender()
{
if($this->request->is('ajax'))
{
$this->layout = 'ajax';
}
}
因此,当我有一个ajax请求时,它只会呈现内容而不是整个菜单,标题等,如果没有,则呈现正常。
但是我迷失了,因为它应该是来自服务器的正确答案。我的意思是,如果这是一个正常的请求,页面正常加载。但是如果它是一个ajax请求,我就无法获得我设置的任何变量,例如,通过javascript。或任何操作状态(如果他失败,成功等)。现在我通过响应标头发送任何额外的内容,但我不知道这样做是否是好的做法,所以,有关如何解决此问题的任何建议?
答案 0 :(得分:-1)
您可以使用CakeResponse进行调试。
if ($this->RequestHandler->isAjax()) {
//your code here
return new CakeResponse(array('body'=> json_encode('...message here...'),'status'=>200));
}
这是在aRax函数内部,不在beforeRender
中