在JavaScript中通过WebService访问SharePoint数据

作者:青柠

时间:2026-10-26

浏览:264

本文介绍如何在SharePoint 2007环境下,利用JavaScript通过WebService访问列表数据。主要步骤包括下载并引用SPAPI_Core.js和SPAPI_Lists.js库,使用getListItems方法发起同步请求获取XML数据,并解析返回结果以提取特定字段信息。

文章目录

SharePoint数据访问背景与目标

在SharePoint 2010中已有成熟的解决方案(详见拙文SharePoint客户端编程系列https://www.jb51.net/article/27198.htm),但在SharePoint 2007中实现起来较为复杂。本文旨在解决如何在JavaScript中通过WebService访问SharePoint数据的具体问题。


API库下载与引用

首先,需要从指定地址(http://darrenjohnstone.net/download/12)下载JavaScript API包。

引入该JS文件后,其中包含两个库:一个是处理核心逻辑的SPAPIcore.js,另一个提供了大部分可供调用的接口SPAPI_Lists.js。

在HTML中引用这两个脚本文件: <script src="SPAPI_Core.js"></script> <script src="SPAPI_Lists.js"></script> 最常用的接口方法是getListItems(listName, viewName, query, viewFields, rowLimit, queryOptions, webID)。

获取用户信息的代码实现

以下是在SharePoint Designer(SPD)定制开发中常见的问题:获取用户信息。

具体代码如下:

 
function getCurrentUserStat()
{ 
var lists = new SPAPI_Lists('');
var items = lists.getListItems(
'UserInfo',
'', 
'<Query><Where><Eq><FieldRef Name="ID"/><Value Type="Counter">' + _spUserId + '</Value></Eq></Where></Query>', // query
'<ViewFields><FieldRef Name="Department"/></ViewFields>',
1, // rowLimit
'' // queryOptions
); 

通过处理返回的XML文件,可以获取所需的相关信息。


相关代码如下:

 
if (items.status == 200)
{ 
var rows = items.responseXML.getElementsByTagName('z:row');
if (rows.length == 1)
{ 
var dep = rows[0].getAttribute('ows_Department');
return rows[0].getAttribute('ows_Department');
} 
} 

此方法调用时发送的是同步请求。此外,在调试过程中,如果想了解属性或值的详细信息,可以通过alert(items.responseText)来查看返回的结果。



参考:



http://darrenjohnstone.net/2008/07/22/a-cross-browser-javascript-api-for-the-sharepoint-and-office-live-web-services/

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章