SharePoint Rest文档库

时间:2017-03-23 19:12:31

标签: javascript rest sharepoint sharepoint-2013 sharepointdocumentlibrary

我正在创建一个为SharePoint网站编写HTML和javascript的自定义页面。我想将文档库嵌入到我在SharePoint设计器中编写的自定义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变量的正确网址。

为了进行一些测试_spPageContextInfo.webServerRelativeURL拉什么?我试图看看我是否可以向后工作并首先手动创建URL而不使用SP函数调用。

1 个答案:

答案 0 :(得分:1)

示例代码中的folderUrl变量应该以库的路径结束;在/Forms/AllItems.aspx之前的所有内容,所以/x/x/x/testDocumentLibrary其中/x/x/x/是图书馆所在网站的服务器相对路径。

_spPageContextInfo对象提供两种服务器相对URL的变体,一种用于当前站点(称为&#34; web&#34;在SharePoint术语中),另一种用于当前站点集合< / em>(在Google术语中称为&#34; site&#34;)。适当地,这些属性标记为webServerRelativeURLsiteServerRelativeURL。这两者都是服务器相关的,这意味着它们排除了域名的第一部分。 (而不是https://constoso.com/sites/stackoverflow他们会给你/sites/stackoverflow。)

对于REST调用,您可能需要绝对URL,而不是服务器相对URL。您可以通过_spPageContextInfo的媒体资源webAbsoluteURLsiteAbsoluteURL访问网站和网站绝对网址。

如果您正在访问的列表/库位于运行REST的当前站点上,请使用webAbsoluteURL属性。