2013-08-02 38 views

回答

2

我不确定我完全理解你的问题,但我会尽力回答。

术语“主机网站”真的是相对的,在这种情况下,它意味着该应用程序安装在的网站。

要走出这个问题,你需要两件事。

  1. 您需要应用程序的权限。在App Manifest中,有一个权限标签。您可能感兴趣的有两个:“网站”和“网站集”。这里是描述这些的链接:http://msdn.microsoft.com/en-us/library/fp142383.aspx

  2. 接下来的事情会超出AppWeb的范围。这是通过一个名为RequestExecutor的东西完成的。这使您可以要求SharePoint代表您拨打电话以超出应用程序范围,但它只会在您授予权限的位置。这里是一个链接到该过程:http://msdn.microsoft.com/en-us/library/fp179927.aspx

做这些事情都将给您要什么有什么,你需要得到。

+1

感谢SPRequestexecutor解决我的问题。 – Jibs

0
function RetrieveWebsFromHostWeb() { 

var websUrl = _appWebUrl + "/_api/SP.AppContextSite(@target)/site/rootWeb/[email protected]='" + _hostWebUrl + "'"; 

$.ajax({ 
    url: websUrl, 
    method: "GET", 
    headers: { "Accept": "application/json; odata=verbose" }, 
    success: this.OnRetrieveWebsFromHostWebSucceeded 
}); 

}

function OnRetrieveWebsFromHostWebSucceeded(sender, args) { 

console.log(sender.d.results); 

}

function GetQueryStringParameter(paramToRetrieve) { 
    var params = document.URL.split("?")[1].split("&"); 
    var strParams = ""; 
    for (var i = 0; i < params.length; i = i + 1) { 
     var singleParam = params[i].split("="); 
     if (singleParam[0] == paramToRetrieve) 
      return singleParam[1]; 
    } 
} 
var _appWebUrl = decodeURIComponent(this.GetQueryStringParameter("SPAppWebUrl")); 
var _hostWebUrl = decodeURIComponent(this.GetQueryStringParameter("SPHostUrl")); 
相关问题