sharepoint 2010 GetFolderByServerRelativeUrl无法正常工作

时间:2018-05-02 11:38:16

标签: api sharepoint sharepoint-2010

版本:Sharepoint 2010 由Apps4rent主办 使用sharepoint 2013我能够使用_api / Web / GetFolderByServerRelativeUrl('')API调用获取文件夹和文件 但是对于sharepoint 2010实例,如果我尝试使用_api / Web / GetFolderByServerRelativeUrl('')此API,则会出现404错误。 如果我在这里做错了,请纠正我

2 个答案:

答案 0 :(得分:1)

是。 SharePoint 2010不支持REST API,但您可以使用listdata.svc服务。

参考下面的代码。这应该适合你:

'https://abc.abcd.com/sites/RohitW/_vti_bin/Listdata.svc/DocLibTest2?$ filter = endswith(Path,'folder1')'

注意: 这里我们试图将文件存在于文档库的特定文件夹(即folder1)中(即DocLibTest2)

  1. DocLibTest2是文档库的名称。

  2. folder1DocLibTest2

  3. 中的文件夹名称

    参考:http://www.sharepointnadeem.com/2012/08/enumerating-items-inside-folder-using.html

答案 1 :(得分:0)

SharePoint 2010不支持直接在浏览器中使用Rest API,请使用JSOM调用它:

<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getFilesInFolder, 'sp.js');
    var files;
    function getFilesInFolder() {        
        var context = SP.ClientContext.get_current();
        var web = context.get_web();
        var folder = web.getFolderByServerRelativeUrl('/sites/test/Shared%20Documents');
        files = folder.get_files();
        context.load(files);
        context.executeQueryAsync(Function.createDelegate(this, this.OnSuccess), Function.createDelegate(this, this.OnFailure));
    }
    function OnSuccess()
    {                                              
        var listItemEnumerator = files.getEnumerator();
            while (listItemEnumerator.moveNext()) {
                var fileUrl = listItemEnumerator.get_current().get_serverRelativeUrl();
                console.log(fileUrl);           
            }                                         
    }

    function OnFailure(sender, args) {
        alert("Failed. Message:" + args.get_message());
    }
</script>