开发者问题收集

JQGrid 是否可以与 SharePoint 结果源 REST API 一起使用

2020-09-27
129

我尝试通过使用 REST API 查询 SharePoint 结果源来查看是否可以使用 JQGrid 显示 SharePoint 搜索结果。

使用 REST API 调用结果源的代码在浏览器和 Postman 中均可用:

var apiUrl =_spPageContextInfo.webAbsoluteUrl +/_api/search/query?querytext='Mike'&rowlimit=100&selectproperties='RequestNameOWSTEXT, SubmittedByOWSUSER,ExaminiationNameOWSTEXT,PublishedDate1OWSDATE&sourceId='d90c19xx-7b3x-42bx-8fbx-d1dxxxx543ffa7',返回了许多结果。

但是当我在 JQGrid 中使用它时,在第 44 行出现错误:Uncaught TypeError: Cannot read property 'length' of undefined

$.ajax({ url: apiUrl,类型:“GET”,异步:false,标头:{“accept”:“application/json;odata=verbose”},成功:函数(数据){

第 44 行:$.each(data.d.results,函数(index,值){................................

我猜 api 调用没有返回结果,因此数据未定义。想知道该 api 是否有问题?

如下所示的其他 api 可以返回结果:

var apiUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('documentrequest')/Folders?$expand=ListItemAllFields,AuthorID/id&$select=Name,ItemCount,ListItemAllFields/AuthorId,ListItemAllFields/ExaminiationName,ListItemAllFields/PublishedDate1&$filter=Name ne'Forms' 且 ItemCount gt 0";

2个回答

如何调试

  1. 您应该检查 rest api 是否正确返回值。
  2. 检查使用长度的变量类型是否具有长度属性。
Amos
2020-09-29

我发现它有效。SharePoint 搜索 API 本身仅提供文件名、ContentTypeID 和路径。我使用这些值运行另一个 API 调用以获取元数据,然后将值添加到数组中,用于提供给 jqgrid。

只需将所有数据放入数组中,然后在数据准备好时提供给 jqgrid。

MWAN001
2020-10-08