2012-11-27 57 views
0

我正在一个CakePHP应用程序,并试图AJAX它与JQuery的一点,使其工作更好用户。CakePHP 2.x和JQuery的Ajax - 蛋糕不认为请求是ajax

我刚刚遵循本教程:Cakephp Jquery AJAX Tutorial但由于某种原因,它不起作用。

一个关于教程伟大的一点是,功能回落到正常的CakePHP如果请求不是一个AJAX请求,以便我的应用程序仍然有效,但它不工作的AJAX的方式...

它看起来像在我的控制器,该请求不通过测试:

if($this->request->is('ajax')) 

等继续到的非AJAX方式正常$this->redirect(...)

难道这与if语句中的'ajax'有关吗?在本教程中,作者在2.0之前使用的是CakePHP版本,因此使用$this->RequestHandler->isAjax(),但从cakePHP 2.0开始已弃用此版本。

谢谢你的时间。

+0

更新:好的,我现在有了HtmlHelper链接()函数,我在jquery点击处理程序中调用preventDefault(),现在它可以工作了!我假设如果某人有Js禁用,那么jQuery不会被触及,因此'默认'(去链接)不会被阻止,我的cakephp仍然会为他们工作。这是真的? – poncho

回答

0

正如我想你已经发现,这与Cake无关。这是因为在教程中他告诉你做一个链接,然后你点击链接来运行这个动作。这会导致AJAX请求触发,但也会跟随实际的链接。

您需要在您的jQuery单击事件中使用preventDefault(),以停止浏览器以正常方式跟踪链接。这不会影响链接,如果用户没有JavaScript ...因为他们不会有点击事件发生在第一位:)