2014-03-29 5 views
0

아약스 행동에 내 register.html.twig에 리디렉션, 내가 가진 :Symfony2 내가 Symfony2를 사용하고

내 컨트롤러에서
var registerdata= { 
        "email": email, 
        "pwd": pwd, 
        "phoneNum": phoneNum 
        }; 
      $.ajax({ 
        type: 'POST', 
        url: "register", 
        data: registerdata, 
        success: function(msg){ 

         alert("OK! "); 
        }, 
        error: function(XmlHttpRequest,textStatus, errorThrown){ 

         alert("Failed! "); 
        } 
       }); 

, 데이터베이스에 그 데이터를 삽입 한 후, 나는 리디렉션 할 로그인 페이지가 있는데 다음과 같은 코드가 있습니다.

try 
    { 
     $this -> insertData($account); 
     return $this ->redirect($this ->generateUrl('login')); 
    } 
    catch (Exception $e) 
    { 
     return new response('Message: '. $e->getMessage()); 
    } 

그러나 작동하지 않습니다. 문제를 어떻게 처리해야합니까?

+0

Ajax 호출에서 서버 리디렉션을 수행하면 안됩니다. jquery에서 리디렉션을 수행하십시오. –

답변

1

jQuery 코드에서 또 다른 단계가 필요합니다. 서버가 리디렉션 응답을 반환하면 자바 스크립트를 사용하여 클라이언트를 리디렉션해야합니다.

var registerdata= { 
    "email": email, 
    "pwd": pwd, 
    "phoneNum": phoneNum 
    }; 
$.ajax({ 
    type: 'POST', 
    url: "register", 
    data: registerdata, 
    success: function(msg){ 

     alert("OK! "); 
    }, 
    error: function(XmlHttpRequest,textStatus, errorThrown){ 

     alert("Failed! "); 
    }, 
    complete: function(xhr) 
    { 
     if (xhr.status == 302) { 
      location.href = xhr.getResponseHeader("Location"); 
     } 
    } 
}); 

물론 이상적입니다.

관련 문제