2012-11-27 56 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 ...因爲他們不會有點擊事件發生在第一位:)