如何使用 Sharepoint 托管应用程序访问 HostWeb 的子站点?我想访问托管应用程序的 Hostweb 子站点中的列表。
问问题
1639 次
2 回答
2
我不确定我是否完全理解你的问题,但我会尽力回答。
术语“主机网站”实际上是相对的,在这种情况下,它表示安装应用程序的站点。
要超越这一点,你需要两件事。
您需要应用程序中的权限。在 App Manifest 中,有一个权限选项卡。您可能对两个感兴趣:“Web”和“Site Collection”。这是描述这些的链接:http: //msdn.microsoft.com/en-us/library/fp142383.aspx
接下来的事情将超出 AppWeb 的范围。这是通过一个叫做 RequestExecutor 的东西来完成的。这允许您要求 SharePoint 代表您进行呼叫以超出应用程序的范围,但它只会在您允许的地方进行。这是该过程的链接:http: //msdn.microsoft.com/en-us/library/fp179927.aspx
做这两件事将使您能够获得所需的任何东西。
于 2013-08-05T18:09:04.537 回答
0
function RetrieveWebsFromHostWeb() {
var websUrl = _appWebUrl + "/_api/SP.AppContextSite(@target)/site/rootWeb/webinfos?@target='" + _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"));
于 2014-10-03T04:53:13.223 回答