2016-07-19 1 views
0

私は自分のビューからアプリケーションのコントローラに値を送るためにajaxを使用しています。ajaxのエラーがヒットしていません

アヤックス:

<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> 

さて、私は上記のAjaxコード内から値を取得しています3 dropdownlistsを持っている私のフォームに。 ajax関数がerror部分に行く唯一の時間は、chosenCおよび/またはselectedMが空の場合ですが、chosenYが空の場合はまだsuccessになります。

私は私がnullまたは空("")のいずれか、JavaScriptで正しい値をチェックしていますことを確認するために、空白のままにするときchosenYの値が..私は両方を試してみました警告、およびどちらも仕事している..

ここ

は、私はので、私はそれをチェックしています...それは、空の文字列だと思った..しかし、たとえので、それは問題ではないことから、そうchosenY

enter image description here

を警告してからの結果でありますそれは空です私をアヤックスthodはそれがsuccessであり、errorではないと考えています。なぜですか?

何か助けていただければ幸いです。

+0

なぜ空の応答がエラーになるのですか? – epascarello

+0

エラー/成功は、httpステータスコードに基づいています。ヒットしているサービスが2xx OKタイプのレスポンスであれば、それは「成功」になります。 –

+0

@epascarelloそのデータがなければ、結果は空のテーブルになります。そのフィールドが必要です –

答えて

0

@MarcBのおかげで私はこれを理解しました。実際にはサーバー側であり、空の文字列であってもデータベーステーブルのレコードを検索するためにその値を使用していたため、エラーをスローしませんでした。

だから、僕は今年は空の文字列として渡された場合に例外をスローしますintに文字列を変換します。

アイデアや助けをありがとう!

関連する問題