无法在 Sharepoint 2016 中使用 REST API 更新列表中的列表项

问题描述

我从一个月开始就一直在处理这个问题,但无法解决这个问题。我可以使用 GET 方法 rest api 检索列表。但是我无法在rest api中使用POST方法更新列表中的项目。为了获得清晰的图片,我们的想法是获取点击链接的点击次数,它应该自动更新该链接名称列表中的计数。因此,之前的开发人员创建了两个名为 'a''b' 的列表。

  • 'a' 列表包含 pdf、docx。
  • 'b'列表包含'a'列表、名称等列的pdf链接
  • 我创建了另一个列表 'c',其中包含 'b' 列表和计数的名称

因此,我正在尝试更新 'c' 列表中的计数列。但是我无法从代码本身更新计数。下面的代码是我尝试过的方法之一。请帮我解决这个问题,即使在尝试了上个月分享博客和导师的许多方法后仍然无能为力。

function getItems() {  
    var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items"; 
        $.ajax({  
            url: resturl,type: "GET",headers: {  
                "accept": "application/json;odata=verbose",},success: function(data) {  
                //console.log(data.d.results);  
                var items = data.d.results; 
                for (var i = 0; i < items.length; i++) {                
                console.log("From C List -> Name: " + items[i].Title + ",Count: " + items[i].Count);                 
                }  
            },error: function(error) {  
            alert(JSON.stringify(error));  
            }  
        });  
 }  

var prevcount = 0;
function updateItems() {  
   
       var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items";
       prevcount = prevcount + 1;
   
       $.ajax({
           url: resturl,method: "POST",headers: {
               "accept": "application/json;odata=verbose","X-RequestDigest": $("#__REQUESTDIGEST").val(),"content-Type": "application/json;odata=verbose","IF-MATCH": "*","X-HTTPS-Method": "MERGE"
           },data: "{__Metadata:{'type':'SP.Data.cListItem'},Count: prevcount}",async: false,success: function (data) {              
           console.log(data.d.results);   
           },error: function (data) {   
           console.log(data.responseJSON.error);   
           }   
       });
   }

解决方法

在您的 updateItems 函数中,您需要指定要在 resturl 中更新的列表项 ID,如下所示:

var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items(1)";

您可以参考这篇文章了解更多信息:https://www.codesharepoint.com/rest-api/update-listitem-in-sharepoint-using-rest-api