如何使用jQuery调用ASP.NET Web服务?
我正在尝试使用jQuery从ASP.NET Web服务(SharePoint Server 2007 lists.asmx)获取数据,但是任何对Web服务的调用都将有助于实现这一目标的第一步。
我使用这个方法作为包装,以便我可以发送参数。 同样使用方法顶部的variables可以使其以最小的比率最小化,并且在进行多个类似的调用时允许一些代码重用。
function InfoByDate(sDate, eDate){ var divToBeWorkedOn = "#AjaxPlaceHolder"; var webMethod = "http://MyWebService/Web.asmx/GetInfoByDates"; var parameters = "{'sDate':'" + sDate + "','eDate':'" + eDate + "'}"; $.ajax({ type: "POST", url: webMethod, data: parameters, contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { $(divToBeWorkedOn).html(msg.d); }, error: function(e){ $(divToBeWorkedOn).html("Unavailable"); } }); }
我希望有帮助。
请注意,这需要3.5框架来公开可以以这种方式消费的JSON webmethods。
这是一个使用jQuery.get来调用webservice的例子:
$.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
在上面的例子中,我们调用“webservice.asmx”,传递两个参数:名称和时间。 然后,获取callback函数中的服务输出。
我不知道特定的SharePoint Web服务,但可以使用<WebMethod()>
(在VB.NET中)来装饰页面方法或Web服务,以确保将其序列化为JSON。 您可能只需将webservice.asmx在内部使用的方法包装在自己的Web服务中。
Dave Ward在这方面有很好的演练 。
$.ajax({ type: 'POST', url: 'data.asmx/getText', data: {'argInput' : 'input arg(s)'}, complete: function(xData, status) { $('#txt').html($(xData.responseXML).text()); // result } });
SPServices是一个jQuery库,它抽象了SharePoint的Web服务,使其更易于使用
它已通过 SharePoint 2007 authentication
Lists.asmx支持的操作列表可以在这里find
例
在这个例子中,我们抓取公告列表中的所有项目,并在tasksUL div的项目符号列表中显示标题:
<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script> <script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function() { $().SPServices({ operation: "GetListItems", async: false, listName: "Announcements", CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>", completefunc: function (xData, Status) { $(xData.responseXML).SPFilterNode("z:row").each(function() { var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>"; $("#tasksUL").append(liHtml); }); } }); }); </script> <ul id="tasksUL"/>
我在jQuery AJAX和ASMX中使用jQuery AJAX调用asmx web服务的一个体面的例子…
有一行代码来取消为了让它返回JSON。
我经常与jQuery一起使用ajaxpro。 ajaxpro让我从JavaScript调用.NET函数,其余的我使用jQuery。