如果我访问Sharepoint 2013网站,请点击管理员 - > Sharepoint,您将看到网站集列表(链接为https://somename-admin.sharepoint.com/_layouts/15/online/SiteCollections.aspx)
检索此网站集列表的REST端点URL是什么?
我正在尝试_api / search / query?querytext ='contentclass:sts_site'或_api / search / query?querytext ='contentclass:sts_web',但它没有给出整个列表......
答案 0 :(得分:1)
不幸的是,似乎不可能既不使用REST也不使用JSOM。
因此,正如您在问题中正确提到的那样,解决方法是使用SharePoint Search Query REST/JSOM API
并指定查询contentclass:sts_site
以返回网站结果。
以下REST示例演示了:
function searchSites(webUrl,success, failure) {
var url = webUrl + "/_api/search/query?querytext='contentclass:sts_site'";
$.ajax({
url: url,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
success(data.d.query);
},
error: function (data) {
failure(data);
}
});
}
//print sites info
searchSites(_spPageContextInfo.webAbsoluteUrl,
function(query){
var resultsCount = query.PrimaryQueryResult.RelevantResults.RowCount;
for(var i = 0; i < resultsCount;i++) {
var row = query.PrimaryQueryResult.RelevantResults.Table.Rows.results[i];
var siteUrl = row.Cells.results[6].Value;
console.log(JSON.stringify(siteUrl));
}
},
function(error){
console.log(JSON.stringify(error));
}
);