我正在开发一个小蛋糕PHP应用程序,并试图用JQuery对它进行AJAX,以使其对用户来说更好一点。
我刚刚遵循了本教程:Cakephp Jquery AJAX 教程,但由于某种原因它不起作用。
本教程的一大优点是,如果请求不是 AJAX 请求,则功能会回退到正常的 CakePHP,所以我的应用程序仍然可以工作,但它不能以 AJAX 方式工作......
看起来在我的控制器中,请求没有通过测试:
if($this->request->is('ajax'))
因此,继续使用非 AJAX 方式的正常$this->redirect(...)
。
这可能与"ajax"的if语句有关吗?在本教程中,作者使用的是 cakePHP 2.0 之前的版本,因此使用了 $this->RequestHandler->isAjax()
但这在 cakePHP 2.0 中被弃用了。
谢谢你的时间。
JsHelper::link 可能会做你想做的事。
我想你已经发现,这与蛋糕无关。 这是因为在教程中他告诉您创建一个链接,然后您正在单击该链接以运行该操作。 这会导致 AJAX 请求触发,但实际链接也会被跟踪。
您需要在jQuery单击事件中preventDefault()
,以阻止浏览器以正常方式访问链接。如果用户没有 JavaScript,这不会影响链接...因为他们不会首先发生点击事件:)