如何使用 rest(使用 CAML)对 SharePoint 列表中的超链接列应用筛选器



我想从变量"project_url"获取 siteUrl 包含值的项目

var project_url = _spPageContextInfo.webServerRelativeUrl;
    var queryText = "<Where><Contains><FieldRef Name='SiteUrl' /><Value Type='URL'>" + project_url + "</Value></Contains></Where>";
    var viewXml = '<View><Query>' + queryText + '</Query></View>';
    var webserviceUrl = _spPageContextInfo.siteAbsoluteUrl + "/_api/web/Lists(guid'eb0ba220-73e8-428f-b848-92b606aa74d8')/items?$select=ID,Title,MembersId,AccessTYpe,OrganizationalUnitId,SiteUrl"; 
    var queryPayload = {
        'query' : {
            '__metadata': { 'type': 'SP.CamlQuery' }, 
            'ViewXml' : viewXml,
        }
    };
    $.ajax({
        url: webserviceUrl,
        method: "POST",
        data: JSON.stringify(queryPayload),
        headers: {
            "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value,
            "Accept": "application/json; odata=verbose",
            "content-type": "application/json; odata=verbose"
        },
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log("AllTasks Error -", data);
        }
    });

我收到此错误:

'"{">

error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"en-US","value":"找到没有类型名称的条目,但没有指定预期的类型。若要允许没有类型信息的条目,还必须在指定模型时指定预期类型。

您需要

命中GetItems端点。

此外,将 CAML 查询更改为使用 BeginsWith 而不是 Contains

按如下方式修改代码:

var project_url = _spPageContextInfo.webAbsoluteUrl;
var queryText = "<Where><BeginsWith><FieldRef Name='SiteUrl' /><Value Type='URL'>" + project_url + "</Value></BeginsWith></Where>";
var viewXml = '<View><Query>' + queryText + '</Query></View>';
var webserviceUrl = _spPageContextInfo.siteAbsoluteUrl + "/_api/web/Lists(guid'eb0ba220-73e8-428f-b848-92b606aa74d8')/GetItems"; 
var queryPayload = {
    'query' : {
        '__metadata': { 'type': 'SP.CamlQuery' }, 
        'ViewXml' : viewXml,
    }
};
$.ajax({
    url: webserviceUrl,
    method: "POST",
    data: JSON.stringify(queryPayload),
    headers: {
        "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value,
        "Accept": "application/json; odata=verbose",
        "content-type": "application/json; odata=verbose"
    },
    success: function (data) {
        console.log(data);
    },
    error: function (data) {
        console.log("AllTasks Error -", data);
    }
});

相关内容

最新更新