0

我正在开发一个小 cakePHP 应用程序,并尝试使用 JQuery 对其进行 AJAX 处理,以使其对用户更好地工作。

我刚刚学习了本教程:Cakephp Jquery AJAX 教程,但由于某种原因它不起作用。

本教程的一大优点是,如果请求不是 AJAX 请求,那么功能会退回到正常的 CakePHP,所以我的应用程序仍然可以工作,但它不能以 AJAX 方式工作......

看起来在我的控制器中,请求没有通过测试:

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

因此继续$this->redirect(...)使用非 AJAX 方式的正常。

这可能与'ajax'的if语句有关吗?在本教程中,作者使用的是 2.0 之前的 cakePHP 版本,因此使用了$this->RequestHandler->isAjax(),但自 cakePHP 2.0 起已弃用。

谢谢你的时间。

4

2 回答 2

0

正如我认为你已经发现的那样,这与 Cake 无关。这是因为在教程中他告诉您创建一个链接,然后您单击该链接以运行该操作。这会导致 AJAX 请求触发,但实际链接也会被跟踪。

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

于 2012-12-05T16:02:25.427 回答
0

JsHelper::link可能会做你想做的事。

于 2012-11-30T01:08:11.470 回答