使用 JavaScript 和 REST 从 SharePoint 列表中删除项目

Delete item from SharePoint List using JavaScript and REST

本文关键字:列表 删除项目 SharePoint JavaScript REST 使用      更新时间:2023-09-26

我有一些JavaScript(位于/SiteAssets库中的物理文件),应该删除SharePoint列表中的项目。

我们有现有的 JavaScript 代码可以从列表中检索数据 - 它看起来像这样:

(请注意,由于 JavaScript 在当前用户的上下文中在 PDP 上运行,因此我们不需要请求的特定访问令牌)

var data = $.ajax({
    url: projSiteUrl + "/_api/lists/getbytitle('<listname>')/items,
    type: "GET",
    dataType: "json",
    async: false,
    headers: {
        Accept: "application/json;odata=verbose"  
    }       
});

所以我想我可以编写类似的代码来再次从列表中删除项目。我在 https://msdn.microsoft.com/en-us/library/office/jj164022.aspx#HTTPOps 上读到SharePoint的REST端点支持"普通"REST动词,所以我使用DELETE HTTP动词编写了这篇文章。

var restUrl = spSiteUrl + '/_api/web/lists/GetByTitle(''' + listTitle + ''')/items(' + itemId + ')';
jQuery.ajax({
    url: restUrl,
    type: "DELETE",
    headers: {
        Accept: "application/json;odata=verbose"  
    }       
})

但是我在请求时得到了403 (FORBIDDEN)

我想问题是:我假设支持DELETE动词是错误的吗?

谢谢 :-)

好的,所以显然我在进行修改时确实需要摘要 - 但不是简单的数据检索。

如果我将代码更改为

jQuery.ajax({
    url: restUrl,
    type: "DELETE",
    headers: {
        Accept: "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
        "IF-MATCH": "*"
    }       
}).

。它适用于使用 REST HTTP 动词的简单 AJAX 请求DELETE :-)