2

CakePHP リダイレクト メソッドを使用して新しいページにリダイレクトしようとしていますが、何らかの理由でリダイレクトが機能しません。リダイレクトに使用しているコードは

public function update_sticky_postition_in_db()
{   
     $this->autoRender = false;

     ... // Save info to database

     $this->redirect(array('action' => 'tool'));
}

tool は、リダイレクトしようとしているビューの名前です。問題を見つけるプロセスを早めるために、私はいくつかのことをチェックしましたが、問題の原因を見つけたと思います。基本的に、現在アクティブなビューにリダイレクトしようとしていますが、これがリダイレクトされない理由の一部だと思います。ページのキャッシュに関係している可能性があると読みましたが、その問題を解決する方法がわかりません。

また、firebug を使用すると、リダイレクトが GET リクエストを送信していることがわかりますが、その後は何も起こりません。GET リクエストで何かをする必要がありますか、それとも Cake がそれを処理する必要がありますか? また、GET の URL を確認しましたが、正しいです。

元のツールページを表示できるため、正しい名前のコントローラー内にあります。

また、 update_sticky_postition_in_db() メソッドにはビューがありません (したがって、自動レンダリングが false に設定されている理由)。その目的は、ajax 呼び出しからデータベース内の行を更新することです。

4

1 に答える 1

4

あなたの投稿からupdate_sticky_postition_in_db()、リダイレクトが機能しないように、using ajax 呼び出しを実行しているようです。

ajaxsuccessメソッド内で JavaScript を使用してリダイレクトを行うことができます。

それを行うには、json_encode()上記のメソッドからメッセージを送信し、ajaxsuccessメソッド内でそのステータスを確認して、 を使用してリダイレクトできますwindow.location

于 2012-09-12T10:11:11.517 に答える