2016-06-10 194 views
0

我想用ajax請求調用webservice。我正在尋找日期間隔(即2015-01-01,2016-06-08)之間的所有臨牀病例。當單獨測試時,webservice工作得非常好。這裏是頭:似乎我的ajax方法沒有正確調用我的web服務?

[WebMethod] 
public void getCasesForDateInterval(string startDate, string endDate) 
{ 
... 
} 

這裏是我應該從上述兩個日期檢索JSON文件:

[{"key":"SSB","values":[]},{"key":"GEN","values":[]},{"key":"LYM","values":[]},{"key":"LUD","values":[]},{"key":"GCC","values":[{"dateOpened":"2015-06-01","total":1},{"dateOpened":"2015-06-15","total":2},{"dateOpened":"2015-06-17","total":2},{"dateOpened":"2015-06-22","total":1},{"dateOpened":"2015-06-29","total":1},{"dateOpened":"2015-07-21","total":1},{"dateOpened":"2015-07-22","total":1},{"dateOpened":"2015-08-10","total":1},{"dateOpened":"2015-08-11","total":1},{"dateOpened":"2015-08-19","total":1},{"dateOpened":"2015-08-23","total":1},{"dateOpened":"2016-06-07","total":3}]},{"key":"MAC","values":[{"dateOpened":"2016-06-07","total":1}]},{"key":"MMB","values":[{"dateOpened":"2015-01-02","total":2},{"dateOpened":"2015-01-05","total":1},{"dateOpened":"2015-01-06","total":4},{"dateOpened":"2015-01-07","total":1},{"dateOpened":"2015-01-08","total":2},{"dateOpened":"2015-01-09","total":1},{"dateOpened":"2015-01-12","total":2},{"dateOpened":"2015-01-13","total":6},{"dateOpened":"2015-01-14","total":3},{"dateOpened":"2015-01-15","total":3},{"dateOpened":"2015-01-16","total":2},{"dateOpened":"2015-01-19","total":7},{"dateOpened":"2015-01-20","total":4},{"dateOpened":"2015-01-21","total":1},{"dateOpened":"2015-01-22","total":3},{"dateOpened":"2015-01-23","total":4},{"dateOpened":"2015-01-26","total":3},{"dateOpened":"2015-01-27","total":5},{"dateOpened":"2015-01-28","total":3},{"dateOpened":"2015-01-29","total":3},{"dateOpened":"2015-01-30","total":6},{"dateOpened":"2015-02-03","total":8},{"dateOpened":"2015-02-04","total":10},{"dateOpened":"2015-02-05","total":8},{"dateOpened":"2015-02-06","total":17},{"dateOpened":"2015-02-07","total":1},{"dateOpened":"2015-02-08","total":2},{"dateOpened":"2015-02-09","total":3},{"dateOpened":"2015-02-10","total":2},{"dateOpened":"2015-02-12","total":5},{"dateOpened":"2015-02-13","total":3},{"dateOpened":"2015-02-17","total":6},{"dateOpened":"2015-02-18","total":4},{"dateOpened":"2015-02-19","total":5},{"dateOpened":"2015-02-20","total":2},{"dateOpened":"2015-02-22","total":1},{"dateOpened":"2015-02-24","total":2},{"dateOpened":"2015-02-25","total":2},{"dateOpened":"2015-02-27","total":8},{"dateOpened":"2015-03-03","total":7},{"dateOpened":"2015-03-04","total":4},{"dateOpened":"2015-03-05","total":2},{"dateOpened":"2015-03-06","total":5},{"dateOpened":"2015-03-08","total":1},{"dateOpened":"2015-03-09","total":3},{"dateOpened":"2015-03-10","total":4},{"dateOpened":"2015-03-11","total":6},{"dateOpened":"2015-03-12","total":3},{"dateOpened":"2015-03-13","total":2},{"dateOpened":"2015-03-15","total":1},{"dateOpened":"2015-03-17","total":5},{"dateOpened":"2015-03-18","total":2},{"dateOpened":"2015-03-19","total":1},{"dateOpened":"2015-03-20","total":14},{"dateOpened":"2015-03-22","total":1},{"dateOpened":"2015-03-23","total":1},{"dateOpened":"2015-03-24","total":4},{"dateOpened":"2015-03-25","total":2},{"dateOpened":"2015-03-26","total":8},{"dateOpened":"2015-03-27","total":13},{"dateOpened":"2015-03-28","total":1},{"dateOpened":"2015-03-29","total":1},{"dateOpened":"2015-04-10","total":1},{"dateOpened":"2015-04-24","total":2},{"dateOpened":"2015-07-08","total":1},{"dateOpened":"2016-03-15","total":1},{"dateOpened":"2016-03-25","total":1},{"dateOpened":"2016-06-07","total":3}]}] 

但是,當我試圖讓這個JSON文件,並張貼到一個div元素,它不工作:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $(document).on("click", "#btGO", function() { 
       var startDate = $("#startDate").val(); 
       var endDate = $("#endDate").val(); 
       var resultElement = $("#resultDiv"); 

       $.ajax({ 
        url: "dataWebService.asmx/getCasesForDateInterval", 
        method: "get", 
        data: {startDate: startDate, endDate: endDate}, 
        dataType: "json", 

        success: function (data) { 
         resultElement.html(data); 
        } 
       }); 
      }); 
     }); 
    </script> 

當我更換「得到」的「後」,並使用警報(即警報(數據)),我得到這個:

enter image description here

這是否意味着我的ajax請求有效,但返回的JSON文件是空的?我是JQuery和ajax的新手。我覺得我犯了一個明顯的錯誤。我將非常感謝社區的反饋。謝謝!

+1

你'POST'返回7個JSON對象。你可以'JSON.stringify()'以可讀格式查看結果,但它看起來可以工作。 – theblindprophet

+1

Post是這個ajax調用的正確請求方法,否則,你的webservice如何獲取開始和結束日期?在發佈內容時,只需'獲取'一些東西。 – AyexeM

+1

請注意,jQuery的Ajax在用'dataType:json'調用時不會返回JSON文本,而是一個通過解析JSON(因此@theblindprophet的評論)構建的Javascript對象。否則,請不要忘記使用JS控制檯上的Network選項卡('F12')來檢查你真正從你的請求中得到了什麼。 – raphv

回答

0

嘗試調用您的Web方法時,使用此代碼:

$.ajax({ 
     url: "dataWebService.asmx/getCasesForDateInterval", 
     method: "POST", 
     contentType: "application/json; charset=utf-8", 
     data:'{"startDate":"' + startDate + '", "endDate":"' + endDate + '"}', 
     dataType: "json", 
     success: function (data) { 
      resultElement.html(data); 
     } 
    });