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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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