2016-02-04 57 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 :-)