在JavaScript中通过WebService访问SharePoint数据
本文介绍如何在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/
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
JavaScript新手常犯的编码错误与最佳实践指南
2026-11-04 22:12:38
