2013-08-02 35 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")); 
相關問題