2016-06-10 95 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); 
     } 
    }); 
相关问题