以下のようなシナリオを考えてみましょう。
- ユーザーは、symfony2 コントローラーへの AJAX 呼び出しを作成し、結果を JSON 形式で返すフィルター ボタンを選択します。
- ユーザーが他のリンクを選択すると、システムはユーザーをページにリダイレクトします
- ユーザーはブラウザの [戻る] ボタンを選択します。
- ユーザーには JSON 応答が表示されますが、元のページが表示されるはずです。
私のコントローラーは以下のようになります:
/**
*
*
* @Route("/ajax", name="ajax_route" , options={"expose"=true})
* @Template()
*/
public function someAction()
{
$request = $this->getRequest();
$json = array( );
if($request->isXmlHttpRequest())
{
$res = json_encode($json);
return new Response($res , 200 , array( 'Content-Type' => 'application/json' ));
}
return array( );
}
つまり、ユーザーが戻るボタンを押すと、if($request->isXmlHttpRequest())
探している結果ではない true が返されます。それは正常な動作ですか、それとも何ですか?