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:
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
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 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
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>
Merci d'avance
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
Partager