【发布时间】:2021-03-05 14:06:06
【问题描述】:
我很难让我的以下脚本工作以更新我的 SharePoint 列表“ProjectTracker”上的项目。我研究并尝试了几种类似的方法,但我似乎无法获得任何脚本版本来更新列表项。我不断收到 SharePoint 错误消息“值”:这种类型的 SP.ListItemEntityCollection 不支持 HTTP PATCH 方法。”雕像”:400,“statusText”:“错误请求”}。我包含了错误的屏幕截图,下面是我正在使用的脚本。
任何帮助或建议将不胜感激。提前谢谢你。
jQuery(document).on("click", '#UpdateListItem', function(){
UpdateListItem();
});//Button close
function UpdateListItem() {
var myID = $("#itemID").val();
var listName = "ProjectTracker";
var office = $("#uOffice").val();
var title = $("#uProjectTitle").val();
var priority = $("#uPriority").val();
var startDate = $("#uStartDate").val();
var assignedTo = $("#uAssignedTo").val();
var status = $("#uStatus").val();
var requestor = $("#uRequestor").val();
var item = {
"__metadata": { "type": "SP.Data.ProjectTrackerListItem" },
"Office": office,
"ProjectTitle": title,
"Priority": priority,
"StartDate": startDate,
"AssignedTo": assignedTo,
"Status": status,
"Requestor": requestor
};
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items(" + myID + ")",
type: "POST",
data: JSON.stringify(item),
headers: {
contentType: "application/json;odata=verbose",
"Accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*",
"X-HTTP-Method":"MERGE",
},
success: onSuccess,
error: onError
});
function onSuccess(data) {
alert('List Item Updated');
}
function onError(error) {
alert(JSON.stringify(error));
}
}//Function close
【问题讨论】:
-
该错误表明您正在尝试更新项目集合,而不是单个项目。你可以用F12来追踪真正的请求吗?
-
感谢您的回复,但我不确定如何通过 F12 跟踪此问题。任何建议如何完成此操作?
-
它是浏览器 F12 工具。转到网络选项卡以查看后面的请求。它应该提供更多信息docs.microsoft.com/en-us/microsoft-edge/devtools-guide/network
-
我按照您的指示找到了问题所在。我的列表名称中显示了一个空格 SP.Data.Project TrackerListItem,即使它在列表中没有这样显示。但是当我调整我的脚本(列表名称)填充空间时,SP.Data.Project_x0020_TrackerListItem,一切正常(按预期更新)。这么小的事情引起了这么多的头痛。但现在一切都很好。非常感谢您的建议...非常有帮助!
-
??????那真是太好了! ??????
标签: sharepoint-2013 html-input sharepoint-rest-api