如何使用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。