C# 您可以使用jQueryAjax从Webservice检索数据吗?
我正在尝试从SQLServer数据库检索数据,并使用jQueryAjax来完成这项工作。我需要将这些数据放入一些jqPlot图表中,并认为这是最好的方法。如果有更好的办法,请告诉我 这是我目前的代码: Javascript/jQuery:C# 您可以使用jQueryAjax从Webservice检索数据吗?,c#,jquery,asp.net,ajax,web-services,C#,Jquery,Asp.net,Ajax,Web Services,我正在尝试从SQLServer数据库检索数据,并使用jQueryAjax来完成这项工作。我需要将这些数据放入一些jqPlot图表中,并认为这是最好的方法。如果有更好的办法,请告诉我 这是我目前的代码: Javascript/jQuery: $(document).ready(function () { $(".datepicker").datepicker(); $(".submitButton").click(handleSubmitButton); }); //end of
$(document).ready(function () {
$(".datepicker").datepicker();
$(".submitButton").click(handleSubmitButton);
}); //end of document ready
function handleSubmitButton() {
var AnDParms = new Object();
AnDParms.startDate = $('.start-date').val();
AnDParms.endDate = $('.end-date').val();
AnDParms.facility = $('.FacilityDDL').val();
var DTO = { 'parameters': AndParms };
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(DTO),
url: "GetAdmitsDischarges.asmx.cs/GetAandD",
dataType: "json",
success: function (data) {
alert("Data: " + data.d);
// do chart stuff here.
},
error: function (data) {
alert("Error!" + data.d);
} //end of success
}); //end of ajax call
} //end of handleSubmitButton function
Web服务(GetAdmitsDischarges.asmx.cs
):
标记只是一个简单的页面,包含2个日期字段(设置为datepickers)、1个下拉列表(facility)和一个提交按钮。以下是我的脚本标签,以确保我拥有所需的一切:
<script type="text/javascript" src="js/jqPlot/jquery.jqplot.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jqPlot/jquery.jqplot.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.js"></script>
<script type="text/javascript" src="js/json2.js"></script>
<script type="text/javascript" src="js/DashboardTest.js"></script>
“jquery.js”是jqPlot附带的jquery。我必须支持IE7+(因此是json2.js)。DashboardTest.js就是上面的javascript
运行此操作时不会发生任何情况,单击“提交”按钮时不会显示任何警报。任何帮助都将不胜感激。我的系统管理员不允许我安装Fiddle,如果您想知道…在调用WebService时,请使用
GetAdmitsDischarges.asmx
页面作为URL,而不是代码隐藏GetAdmitsDischarges.asmx.cs
页面
还有一件事。您正在执行GET请求,默认情况下Web服务不允许它。你可能需要补充一点
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
到您的web.config。您是否检查了浏览器工具中的javascript控制台和网络选项卡以查找错误?您是否检查以确保xhr请求符合预期?您的web浏览器中的web developer控制台中是否有错误?firebug控制台中没有错误。@Jason P:我不确定您对xhr请求的要求,这是firebug中的问题吗?好的,我查了XHR,我不确定如何检查…@BradAtCC在Firebug中,有一个“Net”选项卡,单击该选项卡后,您可以单击“XHR”按钮过滤并仅显示ajax请求。在那里查找您的请求。我得到了一个“无法识别的配置部分webServices”。添加到web.config中的内容是否在某个位置?我将其移动到上一个system.web中,这似乎修复了上述错误,但现在我得到了此错误:“NetworkError:500 Internal Server error-?{%22startDate%22:%2208/01/2013%22,%22endDate%22:%2208/31/2013%22,%22facility%22:%22855%22}”我更改了代码以摆脱DTO,并将AandDParms传递给JSON.stringify…是的,web.config部分必须位于system.web中。关于错误-您可以检查事件日志中是否存在任何与ASP.NET相关的错误吗?500是一个非常通用的错误,但事件日志可以提供更多详细信息。web服务需要哪些参数?您可以尝试r吗从浏览器地址栏将其作为直接URL运行?我浏览了日志,不知道从何处查找任何有用的信息。我试图传递的参数是一个具有三个属性startDate、endDate和FacilityID的对象。我尝试在URL处运行它,但由于它返回并采用复杂类型,因此不允许我提供值。我将尝试使用变量而不是参数类(AnDParms)…关于事件日志-使500错误发生,然后在事件日志中进入Windows日志、应用程序日志并查找与ASPNET错误相关的最新黄色感叹号
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>