Как получить значение поля Author с помощью REST API в POST Query - PullRequest
0 голосов
/ 20 декабря 2018

Я хочу получить поле "Автор" из списка дискуссионного форума в SharePoint онлайн, используя REST API в методе POST.Я попробовал следующий подход, он не работает.

var queryUrl =
  '?$select=ID,Title,Body,Author/Title,Folder/ItemCount,FieldValuesAsText/FileRef&$expand=Author,FieldValuesAsText,Folder/ItemCount';
var url =
  siteUrl +
  "/_api/Web/lists/GetByTitle('" +
  listName +
  "')/GetItems" +
  queryUrl;

var camlQuery =
  '<View><Query>' +
  getQueryParams() +
  "<OrderBy><FieldRef Name='DiscussionLastUpdated' Ascending='False'/></OrderBy></Query><RowLimit>12</RowLimit></View>";

var requestData = {
  query: { __metadata: { type: 'SP.CamlQuery' }, ViewXml: camlQuery }
};

jQuery.ajax({
  url: url,
  method: 'POST',
  data: JSON.stringify(requestData),
  headers: {
    'X-RequestDigest': $('#__REQUESTDIGEST').val(),
    Accept: 'application/json; odata=verbose',
    'Content-Type': 'application/json; odata=verbose'
  },
  success: function(data, status, jqXHR) {
    dfd.resolve(data);
  },
  error: function(xhr) {
    dfd.reject(xhr);
  }
});
return dfd.promise();

Вывод аналогичен приведенному ниже.

enter image description here

1 Ответ

0 голосов
/ 25 декабря 2018

Как я объяснил в этом посте , $ expand , похоже, не работает на некоторых специальных столбцах (например, People) при запросах через POST.Наилучшим способом будет использование Items API .

Однако, если вы хотите продолжить этот подход, попробуйте заменить значение queryUrl следующим.

var queryUrl ='?$select=ID,Title,Body,Folder/ItemCount,FieldValuesAsText/FileRef,FieldValuesAsText/Author&$expand=FieldValuesAsText,Folder/ItemCount';

По сути, я пытаюсь сделать так, чтобы вместо прямого запроса к полю Author я запрашивал его из-под FieldValuesAsText .Почти так же, как вы запросили свойство FileRef .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...