Запрос списка SharePoint 2013 из другого семейства сайтов
Я успешно использую SPServices для запроса списков SharePoint в моем семействе сайтов. Теперь у меня есть второе семейство сайтов для другой команды, которая хотела бы видеть данные, уже размещенные в моем первом семействе сайтов (нет, мы не можем использовать одно и то же семейство сайтов). Я хочу создать представления CEWP, запрашивая данные из исходного семейства сайтов, но код не работает, когда я запускаю его из второго семейства сайтов. Вот что работает на первом сайте:
$().SPServices({
operation: 'GetListItems',
async: false,
listName: 'Requests',
CAMLViewFields: "<ViewFields>" +
"<FieldRef Name='ID' />" +
"<FieldRef Name='Title' />" +
"<FieldRef Name='Description' />" +
"<FieldRef Name='Assignee' />" +
"</ViewFields>",
CAMLQuery: "<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Text'>" + id + "</Value></Eq></Where></Query>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
id = $(this).attr("ows_ID");
title = $(this).attr("ows_Title");
description = $(this).attr("ows_Description");
assignee = $(this).attr("ows_Assignee").split(";#");
//some more formulas
});
}
});
Как я могу изменить это, чтобы сделать то же самое (извлечь данные из моего исходного списка SharePoint), но из другого семейства сайтов?
2 ответа
Это то, что я закончил тем, что начал извлекать данные из моего второго семейства сайтов из первого. Мне пришлось переписать все SPServices с помощью ajax:
$.ajax({
async: true,
crossDomain: true,
url: "http://sitecollectionUrl/_api/Web/Lists/GetByTitle('Requests')/Items$filter=startswith(ID, 'test')&$orderby=ID",
method: "GET",
headers: {
"accept": "application/json;odata=verbose",
"cache-control": "no-cache",
"postman-token": "452d273c-96f4-d2a1-bd34-463ab627e4ab"
},
success: function (data) {
$.each(data.d.results, function (index, item) {
id = item.ID;
title = item.Title;
description = item.Description;
//some more formulas
});
},
complete: function (data) {
//some more formulas
}
});
Вы можете попробовать добавить свойство webUrl следующим образом:
$().SPServices({
webUrl: "https://sitecollectionUrl/"
operation: 'GetListItems',
async: false,
listName: 'Requests',
CAMLViewFields: "<ViewFields>" +
"<FieldRef Name='ID' />" +
"<FieldRef Name='Title' />" +
"<FieldRef Name='Description' />" +
"<FieldRef Name='Assignee' />" +
"</ViewFields>",
CAMLQuery: "<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Text'>" + id + "</Value></Eq></Where></Query>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
id = $(this).attr("ows_ID");
title = $(this).attr("ows_Title");
description = $(this).attr("ows_Description");
assignee = $(this).attr("ows_Assignee").split(";#");
//some more formulas
});
}});
https://itsharedspace.wordpress.com/2013/10/17/get-list-items-with-spservices/