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