Ajax 呼び出しに対する「自動」ルーティング制限を実現する最善の方法を探しています。現在、私は次のようにやっています:
/**
* @Secure(roles="IS_AUTHENTICATED_FULLY")
* @Route("/someRoute", name="someRoute")
* @Method("POST")
*/
public function eliminarFacturasAction(Request $request)
{
$response['success'] = false;
$status = 400;
if ($request->isXmlHttpRequest()) {
// needs to set $response values and $status=200 all the time
} else {
// needs to handle the exception and return Json response
}
return new JsonResponse($response, $status ?: 200);
}
これを回避するために、代わりにこれを使用できますか?
@Route("/someRoute",
name="routeName",
condition="request.headers.get('X-Requested-With') == 'XMLHttpRequest'"
)
私はjQueryをJSフレームワークとしてのみ使用しているのでXMLHttpRequest
問題ありません。route が Ajax 呼び出しで実行されない場合、どのような例外がトリガーされますか? それをキャッチしてユーザーにメッセージを表示できますか? または、ある種の 404 ページを表示しますか?
ここで同様の質問を見つけましたが、まったくわかりません