Step by Step Calling web services(SOAP) in SharePoint 2013
As we know sharepoint already provide some sevice for user, we needn't write CAML to query list every time, sharepoint web service have enough methods, it is easy and fast, suggest to call sharepoint serivice.
1. This time, we will analysis the web service using SOAP, and learn how to call the web service in client. here is a web service file:http://servername/_vti_bin/Lists.asmx, and detail:
2. Click a link and show the method in detail, notice the soap envelope.
3. now, we start to coding: we will use the GetList method in this sevice to return the list itmes count with jQuery .
-
a. Create a custom list name hr, and add some data to test.
- b. The main code is set the soap envelope and get the respond body with posting request. then we can get the detail info in the respond body via F12 in IE. because this is xml file, it support jQuery seletor.
- c. Here is the code in all:
<script type="text/javascript">
var isIE = (navigator.appName.toLowerCase().indexOf('netscape') == -1);
$(document).ready(function() {
ExecuteOrDelayUntilScriptLoaded(makeSoapCall, 'sp.js');
});
function makeSoapCall(){
var soapEnv =
"<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
" xmlns:xsd='http://www.w3.org/2001/XMLSchema' \
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> \
<soap:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>" + "hr" + "</listName> \
<viewName></viewName> \
<query></query> \
<viewFields></viewFields> \
<rowLimit></rowLimit> \
<queryOptions><QueryOptions xmlns=''><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns><ViewAttributes Scope='RecursiveAll'/></QueryOptions></queryOptions> \
</GetListItems> \
</soap:Body> \
</soap:Envelope>";
$.ajax({
url:"HTTP://DEV-SP/_vti_bin/Lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
complete: processResult,
contentType: "text/xml; charset=\"utf-8\""
});
}
function processResult(xData, status) {
var result;
if (isIE)
result = xData.responseXML
else
result = xData.responseText
try {
if (status == "success" && result){
$(result).find("rs\\:data").each(function() {
alert($(this).attr("ItemCount") + " Items found.");
});
}
}
catch (e) {
alert(e);
}
}
</script>
- d. Result:
Links : Calling the SharePoint 2010 GetListItems web services with Jquery
本文详细介绍了如何使用jQuery调用SharePoint Web服务中的GetList方法,实现自动化查询SharePoint列表项数量的功能。通过创建自定义列表并添加测试数据,演示了如何构造SOAP封装并获取响应信息,最终利用jQuery选择器解析XML响应,获取所需的数据信息。

6608

被折叠的 条评论
为什么被折叠?



