2012-11-06 3 views
0

아약스 successfuly 통해 값을 제출하는 서명 양식을 구현했습니다. 값이 데이터베이스의 항목 중 하나와 일치하면 모든 것이 설정되고 값이 일치하지 않을 때 자연스럽게 사용자가 연결되지 않습니다.아약스 symfomy2 내 컨트롤러에서 응답을 얻는 방법을 찾을 수 없습니다.

문제는 컨트롤러에서 응답이 항상 200 상태로 진행되고 프로세스가 옳았거나 잘못되었는지를 알 수 없습니다.

모든 것이 기술적으로 올바르게되었을 때 PHP가 항상 200 상태를 반환하지만 내 컨트롤러에서 올바른 값을 설정하고 가져올 수 있습니다. 자바 스크립트 코드를 읽고 정상적으로 작동하는지 여부를 알 수 있습니까?

여기 내 코드의 일부입니다 :

// 컨트롤러

[...] 
if ($logForm -> isValid()) { 
      //Check user infos in database 
      [...] 

      if (! $user) { 
       //We set an error 
       $resp = array('responseCode' => 400, "message" => "Bad authentification"); 
      } else { 

       $resp = array('responseCode' => 200, "message" => "Good authentification"); 
      } 

      $resp = json_encode($resp); 
      return new Response($resp, 200, array('Content-Type'=>'application/json')); 
     } 
[...] 

// jQuery를 도움을

$('#signInForm').submit(function(e) { 
    e.preventDefault(); 
    var form = $(this).closest('form'); 
    //console.log(form); 

    if(form) { 
     $.ajax({ 
      type: "POST", 
      url: Routing.generate('ajax_sign_in'), 
      data: form.serialize(), 
      cache: false, 
      statusCode: { 
       200: function(v) { 
        console.log("Success"); 
       }, 
       400: function(e) { 
        console.log("Error"); 
       } 
      }, 
      dataType: 'json', 
     }); 
    } else { 
     alert("Error submitting form"); 
    } 
}) 

많은 감사!

+0

왜 상태 whitch 같은 변수를 사용하면 true 또는 false를 반환하지 않습니까? 요청 상태 코드 – Snroki

+0

보다 사용하기가 더 쉽습니다. 이런 방식으로 오류 코드를 사용하면 네트워크 또는 다른 오류를 로그인 시도 실패와 구별 할 수 있습니까? 이전의 주석 작성자가 말했듯이, 나는 명시적인 변수를 사용할 것입니다. –

+0

여기에 symfony가 없지만 응답 값을 반환하고 있습니다. 당신의 상태 200 자바 스크립트에서'if (v [ "message"] == "Good authentification")'을 확인할 수 있습니까? – Kami

답변

0

어쩌면 내가 누락되었지만 왜 이렇게하지 않습니까?

return new Response($resp, $resp['responseCode'], array('Content-Type'=>'application/json')); 
0

나를 도우려는 데 시간을내어 주셔서 감사합니다. 나는 그것을 마침내 얻었다. 이 코드는 작동 중입니다. 라우팅에서 문제가 발생했습니다. 왜냐하면 내가 자바 스크립트가 활성화되었을 때와 둘 중 하나를 사용할 때 두 개의 별개 경로를 사용해야했을 때 둘 다 처리하기 때문입니다.

관련 문제