2016-02-04 56 views
1

我有一些JavaScript(位于/ SiteAssets库中的物理文件)应删除SharePoint列表中的项目。使用JavaScript和REST从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动词?

感谢:-)

+0

可以使用spservices库一个简单的AJAX请求。这是非常好的https://github.com/sympmarc/SPServices –

回答

4

好了,显然我做修改时需要的摘要 - 而不是简单的数据检索。

如果我改变我的代码

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

...它的工作原理与使用REST HTTP动词DELETE :-)