如何处理ajax和渐进增强?

时间:2014-01-03 01:02:31

标签: jquery ajax cakephp progressive-enhancement

我正在构建一个CakePHP和jQuery的网页,我想让它变得更好,但也希望每个人都能访问它,所以我正在深入研究渐进式增强功能。在beforeRender()中,我有这个简单的代码段,对于简单的请求非常有用:

public function beforeRender()
{
    if($this->request->is('ajax'))
    {
        $this->layout = 'ajax';
    }
}

因此,当我有一个ajax请求时,它只会呈现内容而不是整个菜单,标题等,如果没有,则呈现正常。

但是我迷失了,因为它应该是来自服务器的正确答案。我的意思是,如果这是一个正常的请求,页面正常加载。但是如果它是一个ajax请求,我就无法获得我设置的任何变量,例如,通过javascript。或任何操作状态(如果他失败,成功等)。现在我通过响应标头发送任何额外的内容,但我不知道这样做是否是好的做法,所以,有关如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:-1)

您可以使用CakeResponse进行调试。

if ($this->RequestHandler->isAjax()) {
//your code here
return new CakeResponse(array('body'=> json_encode('...message here...'),'status'=>200));
}

这是在aRax函数内部,不在beforeRender