我正在创建一个为SharePoint网站编写超文本标记语言和javascript的自定义页面。我想将文档库嵌入到我在SharePoint designer中编写的自定义html中。
我已经找到了一种在自定义html中轻松嵌入文档库的方法,但我偶然发现了一些rest api的文档。我想我可以使用它,用html编写我自己的ajax应用程序,供用户浏览文档库。
我目前正在尝试使用这个javascrip,看看是否可以为文档库内容拉取html或JSON:
<script type="text/javascript">
var folderUrl = "x/x/x/testDocumentLibrary/Forms/AllItems.aspx";
var url = _spPageContextInfo.webServerRelativeUrl + "/_api/Web/GetFolderByServerRelativeUrl('" + folderUrl + "')?$expand=Folders,Files";
$.getJSON(url,function(data,status,xhr){
for(var i = 0; i < data.Files.length;i++){
console.log(data.Files[i].Name);
}
for(var i = 0; i < data.Folders.length;i++){
console.log(data.Folders[i].Name);
}
});
</script>我不确定我是否为folderUrl变量使用了正确的url。
为了进行一些测试,什么是_spPageContextInfo.webServerRelativeURL拉取?我正在尝试看看是否可以向后工作,首先手动创建URL,而不是调用SP函数。
发布于 2017-03-24 04:53:26
示例代码中的folderUrl变量应以库的路径结尾;直到/Forms/AllItems.aspx,即/x/x/x/testDocumentLibrary,其中/x/x/x/是库所在站点的服务器相对路径。
_spPageContextInfo对象提供了两种与服务器相关的URL,一种用于当前站点(在SharePoint行话中称为“_spPageContextInfo”),另一种用于当前站点集合(在SharePoint行话中称为“站点”)。适当地,这些属性被标记为webServerRelativeURL和siteServerRelativeURL。这两者都是相对于服务器的,这意味着它们排除了域名的第一部分。(他们会给你/sites/stackoverflow,而不是https://constoso.com/sites/stackoverflow。)
对于REST调用,您可能需要绝对URL,而不是服务器相对URL。您可以通过_spPageContextInfo的属性webAbsoluteURL和siteAbsoluteURL访问web和站点绝对URL。
如果您正在访问的列表/库位于运行REST的当前站点上,请使用webAbsoluteURL属性。
https://stackoverflow.com/questions/42985011
复制相似问题