首页 文章

SharePoint Rest文档库

提问于
浏览
0

我正在创建一个自定义页面,为SharePoint站点编写HTML和javascript . 我想在我的自定义html中嵌入文档库,我在SharePoint设计器中编写 .

我没有找到一种方法可以轻松地将文档库嵌入到自定义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函数调用 .

1 回答

  • 1

    示例代码中的 folderUrl 变量应以库的路径结束;一直到 /Forms/AllItems.aspx ,所以 /x/x/x/testDocumentLibrary 其中 /x/x/x/ 是库所在站点的服务器相对路径 .

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

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

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

相关问题