1

いくつかのチェックを実行するAJAXリクエストを送信するjqueryがあり、別のページにリダイレクトするか、データを返す必要があります。アクションファイルでリダイレクトを強制できないことを除いて、すべて正常に機能します。私はもう試した:

$this->redirect('@new_page'); // DOESN'T WORK

と...

$this->context->getController()->redirect('@new_page'); // DOESN'T WORK

リダイレクト URL を Jquery に戻し、そこからリダイレクトする方法があると思いますが、アクションでリダイレクトを処理したいと思います。

これは可能ですか?

ありがとう

アップデート:

上記の最終的な解決策は、Ajax リクエストに TRUE/FALSE を返し、Jquery 関数に以下を追加することでした。

if(data == true) window.location.href = "<?php echo url_for('@new_page') ?>";
else // do other stuff

新しいページの URL は動的である必要はなく、最初のページの読み込み時に挿入できました。この場合、else 句に返されるデータは TRUE/FALSE で十分です。

4

2 に答える 2

2

AJAXアクションを使用すると、結果が(通常)コールバックハンドラーまたはDIVページ内の要素に返されることを忘れないでください。したがって、使用しようとしているリダイレクトは、HTTPページ要求全体ではなく、このAJAXアクションの応答のみを参照します。リダイレクトはおそらくsymfony内から正常に機能しており、返される応答がDIVまたはコールバックハンドラーに送られ、HTMLをどう処理するかがわかりません。実際、AJAXコールバックハンドラー内からリダイレクトまたは更新を実行する必要があります。

errorコールバックを使用して別のコールバックDIVをエラーメッセージコンテンツとともに表示することを優先して、完全なリダイレクトを回避することを検討することもできますが、必要に応じて、このerrorコールバックをリダイレクトにも使用できます。

于 2010-02-22T16:49:41.000 に答える