requéte Ajax dans symfony 2
salut à tous ça fais des jours que je cherche des solutions à mon problème,en fait je veux modifier la fonction loginAction de symfony 2 en utilisant ajax pour retourner les erreurs d'authentification,mais le problème est que mon controller ne détecte plus isXmlHttpRequest() et je sais pas pourquoi.
voila mon DefaultController.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public function loginAction()
{
$request = $this->container->get('request');
$isAjax = $request->isXmlHttpRequest();
$session = $request->getSession();
$error='';
if($isAjax==true)
{
// get the login error if there is one
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
}
else {
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}
return $this->render('MyhomeBundle:Security:login.html.twig', array(
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error,));
$response = new Response(json_encode($error));
return $response;
}
else return $this->render('MyhomeBundle:Security:login.html.twig', array(
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error,));
} |
et voici mon code js:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <script>
$('#monforme').submit(function() {
$.ajax({
type : 'POST',
url : '{{ path('login_check') }}',
dataType : 'json',
data: {},
success : function(data){
$('#div_login_message').html(''+data.error);
}
});
return false;
});
</script> |
et voila mon routing.php
Code:
1 2 3 4 5 6 7 8 9 10 11
| login:
pattern: /login
defaults: { _controller: MyhomeBundle:default:login}
login_check:
pattern: /login_check
requirements:
_method: POST |
Merci d'avance