2016-07-19 8 views
0

아약스를 사용하여 내보기에서 내 응용 프로그램의 컨트롤러로 값을 보냅니다.아약스의 오류가 발생하지 않았습니다.

아약스 :

<script type="text/javascript"> 
$('#SendToController').on('click', function() { 
    sendToController(); 
    return false; 
}); 
function sendToController(){ 
    var selectedM = $('#Month').val(); 
    var chosenY = $('#Year').val(); 
    var chosenC = $('#County').val(); 
    //alert(chosenY); 

    $.ajax({ 
     url: '/ALog/MReports/Generate', 
     data: { 'monthV' : selectedM, 'year' : chosenY, 'county' : chosenC }, 
     type: 'GET', 
     cache: false, 
     success: function (data) { 
      $("body").html(data); 
      $('.dropdown-toggle').dropdown(); 
     }, 
     error: function() { 
      if (selectedM === "") { 
       alert("Error 1!"); 
      } 
      else if (chosenY === "") { 
       alert("Error 2!"); 
      } 
      else if (chosenC === "") { 
       alert("Error 3!"); 
      } 
     } 
    }); 
} 


</script> 

지금, 나는 내가 위 아약스 코드의 값을 얻고 3 dropdownlists이 내 양식에. ajax 함수가 error 부분으로가는 유일한 시간은 chosenC 및/또는 selectedM이 비어 있지만 chosenY이 비어 있으면 여전히 success이됩니다.

나는 내가 자바 스크립트와 올바른 값을 확인하고 보장하기가 비어 경우 중 하나 null 또는 빈 ("") .. 나는 모두 시도했다 chosenY의 값을 경고하고도 작업 ..

있다

여기에 내가 chosenY

enter image description here

을 경고 할 때의 결과이다 그래서 나는 그것이 내가 .. 그 확인하고 있지만,이 경우에도 있기 때문에 문제가되지 않습니다 .. 빈 문자열라고 생각 것을에서 비어 있습니다. 아약스나요. thod는 이것을 success으로 생각하고 있는데 error이 아닙니다. 왜 그런가요?

도움을 주시면 감사하겠습니다.

+0

왜 빈 응답이 오류가됩니까? – epascarello

+0

오류/성공은 http 상태 코드를 기반으로합니다. 타격중인 서비스가 2xx OK 유형 응답 인 경우 '성공'으로 이동합니다. –

+0

@epascarello 그 데이터가 없으면 결과는 빈 테이블이되기 때문입니다. 해당 필드가 필요합니다. –

답변

0

@MarcB 덕분에 이것을 알아 냈습니다. 실제로 서버 측에 있었고 빈 문자열 이었지만 데이터베이스 테이블의 레코드를 검색 할 때이 값을 사용했기 때문에 오류가 발생하지 않았습니다.

그래서 문자열을 int으로 변환하여 연도가 빈 문자열로 전달되는 경우 예외가 발생합니다.

아이디어/도움에 다시 한 번 감사드립니다!

관련 문제