CakePHP2.x和jQueryAjax-Cake不';我不认为请求是ajax

CakePHP2.x和jQueryAjax-Cake不';我不认为请求是ajax,ajax,jquery,cakephp-2.0,cakephp-2.1,Ajax,Jquery,Cakephp 2.0,Cakephp 2.1,我正在开发一个小的cakePHP应用程序,并尝试使用JQuery将其AJAX化一点,以便更好地为用户服务 我刚刚学习了本教程:但由于某些原因,它不起作用 本教程的一个优点是,如果请求不是AJAX请求,那么我的应用程序仍然可以工作,但它不能以AJAX的方式工作,那么功能会回到正常的CakePHP 看起来在我的控制器中,请求未通过测试: if($this->request->is('ajax')) 因此继续使用非AJAX方式的常规$this->redirect(…) 这可能与“ajax

我正在开发一个小的cakePHP应用程序,并尝试使用JQuery将其AJAX化一点,以便更好地为用户服务

我刚刚学习了本教程:但由于某些原因,它不起作用

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

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

if($this->request->is('ajax'))
因此继续使用非AJAX方式的常规
$this->redirect(…)

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


谢谢你的时间。

可能会做你想做的。

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


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

好的,如果我不使用cakePHP帮助函数,我已经成功地让它工作了:$this->Html->link(),但是只需自己编写一个元素,而不使用href to:'action'=>'delete',但这意味着它对禁用javascript的人不起作用,本教程的要点是,它将根据if-request->is('ajax')…以任何方式工作。。。看起来非ajax调用比ajax调用具有更高的优先级,因此if语句永远不会被命中……或者其他什么。更新:好的,我现在有了HtmlHelper link()函数,我在jquery单击处理程序中调用了preventDefault(),现在它可以工作了!!我假设如果有人禁用了Js,那么jQuery将不会被触动,因此“默认”(转到链接)将不会被阻止,我的cakephp仍然可以为他们工作。这是真的吗?