我有一些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端点支持&#34; normal&#34; 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
动词我错了吗?
谢谢: - )
答案 0 :(得分:4)
好的,显然我做在做修改时需要摘要 - 但不是简单的数据检索。
如果我将代码更改为
jQuery.ajax({
url: restUrl,
type: "DELETE",
headers: {
Accept: "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*"
}
}).
...它使用REST HTTP动词DELETE
处理一个简单的AJAX请求: - )