0

SharePoint 사이트에 HTML 및 JavaScript를 작성하는 사용자 지정 페이지를 만듭니다. 내 사용자 지정 html 내에서 문서 라이브러리를 포함하고 싶습니다. SharePoint 디자이너로 작성했습니다.SharePoint Rest 문서 라이브러리

나는 쉽게 사용자 정의 html로 문서 라이브러리를 임베드 할 수있는 방법을 찾았지만, 나머지 API에 대해서는 일부 문서를 찾지 못했습니다. 나는 이것을 사용하여 사용자가 문서 라이브러리를 탐색 할 수 있도록 html에서 내 자신의 아약스 애플리케이션을 작성할 수 있다고 생각했다.

나는 현재 내가 문서 라이브러리의 내용에 대한 HTML이나 JSON을 뽑을 수 있다면 바로 볼이 javascrip에 노력하고 있습니다 :

<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을 수동으로 만들 수 있는지 확인하려고합니다.

답변

1

예제 코드의 folderUrl 변수는 라이브러리에 대한 경로로 끝나야합니다. /Forms/AllItems.aspx까지의 모든 것이므로 /x/x/x/testDocumentLibrary입니다. 여기서 /x/x/x/은 라이브러리가 상주하는 사이트에 대한 서버 상대 경로입니다.

_spPageContextInfo 객체 계획 (SharePoint 용어에서 "사이트"라고합니다) 현재 사이트 모음의 현재 계획 (SharePoint 용어에서 "웹"이라고 함) 사이트와 하나 서버 상대 URL, 한 두 가지 변화를 제공

. 적절하게, 이들 속성은 webServerRelativeURLsiteServerRelativeURL으로 표시됩니다. 이 두 가지 모두 서버와 관련이 있습니다. 즉, 도메인 이름의 첫 번째 부분을 제외시킵니다. (https://constoso.com/sites/stackoverflow 대신 /sites/stackoverflow을 제공합니다.)

REST 호출의 경우 서버 상대 URL이 아닌 절대 URL을 원할 수 있습니다. _spPageContextInfo의 속성 webAbsoluteURLsiteAbsoluteURL을 통해 웹 및 사이트 절대 URL에 액세스 할 수 있습니다.

액세스중인 목록/라이브러리가 REST가 실행되는 현재 사이트에있는 경우 webAbsoluteURL 속성을 사용하십시오.

+0

디자이너 페이지에 이전 페이지를 복사 한 다음 이름을 다시 지정하면 페이지가 공유 웹 사이트에 먼저 생성되어야합니까? – searayman

+0

동일한 사이트에 복사했다고 가정하면 작동합니다. 'folderUrl' 변수에서 문자열 형식에 대한 자세한 내용은 업데이트 된 답변을 참조하십시오. – Thriggle