2013-03-04 5 views
0

(HTML 양식 (AJAX) + twitter 부트 스트랩) (솔로 HTML, JSP 등) -> 서블릿 (Google App의 경우) Engine-JAVA) -> 지속성 (Google Cloud SQL).Jquery-Ajax 호출이 예상대로 작동하지 않습니다.

나는 jQuery ajax 호출에 새로운 것이지만 이전 XHR 코드를 작성하는 데 익숙하기 때문에이 과정을 이해한다. 아래 JS의 기능은 콘솔에 예상 결과를 쓰지 않습니다. 대부분의 경우 양식 데이터가 지속됩니다. 내 서블릿 좋은 경우, 유효한 JSON. (브라우저에 URL을 호출은 항상 기대 작품으로.)로 출력 jQuery를 아약스 콜백 (항상 실패 완료) 제대로 작동하지 않는 이유

내 대답은? 그들은 console/display alert()에 글을 쓴다. 감사합니다.

$(document).ready(function() { 
    var myEmail = ""; 
    var myGender = ""; 

    $('#saveButton').click(function() { 
     $('#myform').submit(); 
     //alert('Handler for .submit() called.'); 
     myEmail = document.getElementById("inputEmail").value; 
     window.console.log('EMAIL---->' + myEmail);/*ok log!*/ 
     //alert('EMAIL->' + myEmail); 
     var radioObj = document.forms['myForm'].elements['gender']; 
     myGender = getCheckedValue(radioObj); 
     window.console.log('GENDER---->' + myGender);/*ok log!*/ 
     //alert('GENDER->' + myGender); 
     var jqXHR = $.ajax({ 
      statusCode : { 
       404 : function() { 
        alert("404 ERROR - page not found"); 
       } 
      }, 
      url : "/newuser", 
      type : "GET", 
      timeout : 10000, 
      data : { 
       email : myEmail, 
       gender : myGender, 
       operation : '0' 
      }, 
      done : function(data, textStatus, jqXHR) { 
       window.console.log('done -> RESPONSE---->' + data);/*this does not log!*/ 
       alert(data); 
      }, 
      fail : function(jqXHR, textStatus, errorThrown) { 
       window.console.log('always -> RESPONSE---->' + data); /*this does not log!*/ 
       alert(data); 
      }, 
      always : function(data, textStatus, jqXHR) { 
       window.console.log('always -> RESPONSE---->' + data); /*this does not log!*/ 
       alert(data); 
      } 
     }); 
    }); 
}); 

답변

0

done, failalways이 설정되지 특성 $.ajax에 전달 된 객체 있습니다, 그들은 jqxhr 객체 에 콜백 $.ajax에 대한 호출에 의해을 반환합니다. 다음과 같이 구성해야합니다.

var jqxhr = $.ajax("example.php") 
    .done(function() { alert("success"); }) 
    .fail(function() { alert("error"); }) 
    .always(function() { alert("complete"); }); 

자세한 사용법은 API documentation을 확인하십시오.

+0

감사합니다. –

관련 문제