2017-01-31 16 views
0

다음과 같은 문제가 있습니다. SharePoint Online Environment에는 데이터를 목록에 저장하는 SharePoint Hosted App이 설치됩니다. 이 목록에서 데이터를 가져와야하지만 SharePoint Hosted App의 웹은 동일한 앱 웹/앱 컨텍스트 외부에서 어떤 유형의 액세스도 허용하지 않습니다.SharePoint 호스팅 된 추가 기능 웹의 데이터 액세스

이 문제에 대한 해결책이 있습니까? 그 이유는 애플 리케이션 웹 보호가 거기에 있다는 것을 알고 있지만 Sharepoint Hosted Add-In이 컨텍스트 외부에서 데이터를 공유 할 수있는 방법이 없다면 궁금합니다.

답변

1
// Get Context of App Web 
var context = new SP.ClientContext("<<SharePoint App Web Url>>"); 
//Set Proxy web to get data of parent web apps 
var factory = new SP.ProxyWebRequestExecutorFactory("<<SharePoint App Web Url>>"); 
context.set_webRequestExecutorFactory(factory); 
//get parent web context 
var appContextSite = new SP.AppContextSite(context, "<<SharePoint App Host Web Url>>"); 
web = appContextSite.get_web(); 

//get parent web list 
var lists = appContextSite.get_web().get_lists().getByTitle("<<List Name>>"); 
var caml = new SP.CamlQuery(); 
//Ceate CAML Query to get items from list 
caml.set_viewXml('View><Query></Query></View>'); 
var listItems = lists.getItems(caml); 
//load context of listItems 
context.load(listItems); 
context.executeQueryAsync(function() { 
    var listInfo = ''; 
    var listEnumerator = listItems.getEnumerator(); 
    while (listEnumerator.moveNext()) { 
     var oList = listEnumerator.get_current(); 
     listInfo += ' ID: ' + oList.get_id().toString() + '\n'; 
    } 
    alert(listInfo); 
    //here you can get list data 
}, 
function (sender, args) { 
    console.log(args.errorMessage); 
});