【问题标题】:SharePoint Rest Document librarySharePoint 休息文档库
【发布时间】:2017-03-23 19:12:30
【问题描述】:

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

我没有找到一种在自定义 html 中轻松嵌入文档库的方法,但偶然发现了一些用于休息 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 拉什么?我正在尝试查看是否可以在不调用 SP 函数的情况下先手动创建 URL。

【问题讨论】:

    标签: javascript rest sharepoint sharepoint-2013 sharepointdocumentlibrary


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 如果我正在构建的页面,我只是在设计器中复制了一个较旧的页面并重新命名它,这一切都可以工作还是我需要先在共享点网站中创建页面?
    • 它应该可以工作,假设您将它复制到同一个站点。有关 folderUrl 变量中字符串格式的详细信息,请参阅我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 2020-01-01
    相关资源
    最近更新 更多