0

私は小さなcakePHPアプリケーションに取り組んでおり、ユーザーにとって少しうまく機能するように、JQueryで少しAJAXしようとしています。

私はちょうどこのチュートリアルに従った: Cakephp Jquery AJAX チュートリアルですが、何らかの理由で機能しません。

チュートリアルの素晴らしい点の 1 つは、リクエストが 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

JsHelper::linkはあなたが望むことをするかもしれません。

于 2012-11-30T01:08:11.470 に答える
0

あなたが発見したと思うように、Cake とは何の関係もありません。これは、チュートリアルでリンクを作成するように指示されているため、リンクをクリックしてアクションを実行しているためです。これにより、AJAX リクエストが発生しますが、実際のリンクもたどられます。

preventDefault()ブラウザが通常の方法でリンクをたどらないようにするには、jQuery のクリック イベントが必要です。ユーザーがJavaScriptを持っていない場合、これはリンクに影響しません...そもそもクリックイベントが発生しないためです:)

于 2012-12-05T16:02:25.427 に答える