如何使用REST API + JQuery在SharePoint 2013中访问文档的URL?

8

我正在进行基本的 OData/REST 调用来访问 SP2013 文档库。 我正在尝试获得项目的 URL,但无法确定如何做到这一点。 我非常熟悉服务器端对象模型,并且了解文件对象比项目深一个级别。 有人可以指导我正确的方向或分享有关如何进入文件级别的文档吗? 我已经在谷歌上进行了搜索。 这是适用于仅获取访问文档库中所有项目和任何元数据列的代码:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
</html>

<script>
    // workaround for access error
    jQuery.support.cors = true;

    // create REST query
    var requestUri = "http://sp2013/_api/Web/Lists/getByTitle('Documents')/items"; 

    // execute AJAX request
    $.ajax({
        url: requestUri,
        type: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function(data){
            alert(data.d.results);
            $.each(data.d.results, function(index, item){
                if (item["Meta1"] == null) {
                    $("body").append("<h1>No Title</h1>");
                }
                else {
                    $("body").append("<h1>" + item["Meta1"] + "</h1>");
                }
            });
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert(textStatus);
        }
    });
</script>

当然,我只是通过将我的URI更新为“/RootFolder/Files”来解决了这个问题。我的下一个问题是如何将文档的URL与该项的元数据相结合... - Josh
你尝试过这样吗:_api/Web/Lists/getByTitle('Documents')/items(1)/File? - Yevgeniy.Chernobrivets
如果您想从文件方面进行操作,请使用/RootFolder/Files(1)/Item。 - Yevgeniy.Chernobrivets
3个回答

16

获取完整的URL,请尝试:

"http://sp2013/_api/Web/Lists/getByTitle('Documents')/items?$select=EncodedAbsUrl"

3
这不是一个参考链接。如果他将该字符串用作REST API调用的“requestUri”,它将返回他文档列表中项目的绝对URL。 - athom

7

0

我认为你可以使用SharepointPlus来完成这个任务,但它是一个第三方库。在文档中有这个例子:

// if you want to list all the files and folders for a Document Library
$SP().list("My Shared Documents").get({
  fields:"BaseName,FileRef,FSObjType", // "BaseName" is the name of the file/folder; "FileRef" is the full path of the file/folder; "FSObjType" is 0 for a file and 1 for a folder (you need to apply $SP().cleanResult())
  folderOptions:{
    show:"FilesAndFolders_Recursive"
  }
});

至少这可以给你一些想法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接