在本文中,将探讨如何通过SharePoint 2013的跨域库从应用程序访问SharePoint网站的数据。这是一个实用的项目示例,包括详细的步骤说明,旨在帮助开发者理解并实现数据访问。
本文基于MSDN上的信息,提供了一个完整的项目示例。示例使用Visual Studio 2015和SharePoint 365站点,站点中包含一个名为Movies的列表。需要注意的是,该站点启用了侧载(sideloading)。
要开始构建自己的项目,需要按照以下步骤进行初始设置:
步骤 1:在Visual Studio的新项目窗口中,选择“App for SharePoint”。例如,可以将项目命名为spRestExample。
步骤 2:输入SharePoint站点地址,并选择“SharePoint-Hosted”作为应用程序的托管方式。
步骤 3:指定目标SharePoint版本。完成后,将得到一组类似于以下结构的解决方案文件(在VS 2015中)。
步骤 4:双击AppManifest.xml文件,并设置SharePoint权限。
双击App.js文件,并替换其中的所有内容,使用以下代码:
'use strict';
$(document).ready(function () {
var hostweburl;
var appweburl;
// SharePoint站点,应用程序安装的位置
hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
// 应用程序部署在站点内的位置
appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));
// 资源位于URL中,格式为:web_url/_layouts/15/resource
var scriptbase = hostweburl + "/_layouts/15/";
$.getScript(scriptbase + "SP.RequestExecutor.js", execCrossDomainRequest);
// 使用跨域库与多个域进行交互
function execCrossDomainRequest() {
var executor = new SP.RequestExecutor(appweburl);
}
$("#showButton").click(function () {
var executor = new SP.RequestExecutor(appweburl);
executor.executeAsync({
url: appweburl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('Movies')/Items?@target='" + hostweburl + "'",
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
success: successHandler,
error: errorHandler
});
});
function successHandler(data) {
var jsonObject = JSON.parse(data.body);
var moviesHTML = "";
var results = jsonObject.d.results;
for (var i = 0; i < results.length; i++) {
moviesHTML = moviesHTML + "";
}
document.getElementById("resultsDiv").innerHTML = moviesHTML;
}
function errorHandler(error) {
$("#resultsDiv").append(error.statusText);
}
// 通过特定键获取参数值的函数
function getQueryStringParameter(urlParameterKey) {
var params = document.URL.split('?')[1].split('&');
var strParams = '';
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split('=');
if (singleParam[0] == urlParameterKey) return decodeURIComponent(singleParam[1]);
}
}
});
在Default.aspx文件中,在<asp:Content>标签之间添加以下代码:
<div>
<input id="showButton" type="button" value="Show Movies2"/>
</div>
<div id="resultsDiv">
</div>
现在已经准备好运行项目了。第一次运行时,系统会提示信任新应用程序。选择列表名称(本例中为Movies),然后点击“Trust It”。将看到页面上出现了新的“Show Movies”按钮。