我需要使用 SharePoint REST API 筛选包含 5000 多个项目的列表
要筛选的列之一是托管元数据列,它阻止我使用 SharePoint REST API GET Urls
我必须在正文中使用带有 CAML 查询的 REST API POST 请求来实现这一点。
我的代码如下所示
var viewXml =
{
ViewXml: "<View>" +
"<Query>" +
"<Where><Eq>" +
"<FieldRef Name='RegionTestHidden'/>" +
"<Value Type='TaxonomyFieldType'>" + "North" + "</Value>" +
"</Eq></Where>" +
"</Query>" +
"</View>"
}
function CamlQueryRESTCall(listName, viewXml)
{
var call = jQuery.ajax(
{
url: _spPageContextInfo.webAbsoluteUrl+ "/_api/Web/Lists/getByTitle('"+listName+"')/GetItems(query=@v1)?" +
"@v1=" + JSON.stringify(viewXml),
type: "POST",
dataType: "json",
headers:
{
Accept: "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
}
}
);
return call;
}
我遇到的问题是,如果我根据South
结果包含超过 5000 个项目的区域进行过滤,我会收到HTTP Error 500 Internal Server Error
错误消息List item threshold exceeded
。
通过 GET 请求,我可以使用$top
并data.d.__next
加载 5000 多个项目。但是如何在 POST 请求中做类似的逻辑呢?
我尝试包含<RowLimit>1000</RowLimit>
在 CAML 查询中,但仍然出现同样的错误
查询中使用的列被索引了。