2012-11-30 76 views
5

我正在創建Sharepoint應用程序,並且我僅限於使用Javascript(包括jQuery)和REST端點。我想使用網絡應用程序從主機中刪除一個項目,但是出現錯誤(403: FORBIDDEN)。這是我的代碼至今:如何使用REST for Sharepoint 2013刪除項目

executor = new SP.RequestExecutor(appweburl); 
executor.executeAsync({ 
    url: appweburl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + currentListTitle + "')/items(" + result.Id + ")/[email protected]='" + hostweburl + "'", 
    method: "POST", 
    headers: { 
       "accept": "application/json", 
       "X-RequestDigest": ????? 
       "IF-MATCH": "*", 
       "X-HTTP-Method": "DELETE" 
      }, 
    success: onDeleteItemSuccess, 
    error: onDeleteItemFail 
}); 

現在我發現這個X-RequestDigest是強制性的,我發現了一些呼籲從靜止得到這樣的:

$.ajax({ 
    url: appweburl + "/_api/SP.AppContextSite(@target)/contextinfo/[email protected]='" + hostweburl + "'", 
    type: "POST", 
    contentType: "application/x-www-url-encoded", 
    dataType: "json", 
    success: function (data) { 
     if (data.d) 
     { 
      digestValue = data.d.GetContextWebInformation.FormDigestValue; 
      alert(digestValue); 
     } 
    }, 
    error: function (xhr) { 
     alert(xhr.status + ': ' + xhr.statusText); 
    } 
}); 

但它不工作(這可能是因爲這個代碼是用於Sharepoint 2010的),它會一直給我一個403: FORBIDDEN消息。

有誰知道如何使用REST從列表中刪除一個列表項(我不能使用/編輯javascript以外的任何代碼)?

任何幫助appriciated,如果您需要任何信息,請不要猶豫,問。

+1

您從哪裏得到摘錄?我想了解SP.AppContextSite(@target)部分。 – Christophe

+0

這是我從教程中得到的東西,並在過去工作,這不是問題。 – Manuel

回答

4

的代碼不能爲SharePoint 2010,因爲_api是新的SP 2013

[更新]也許你的意思是你的代碼是在SP 2013預覽工作?在SP2013 RTM中,您需要使用:

"Accept": "application/json; odata=verbose" 
+0

嗯,實際上解決了問題...謝謝! – Manuel

+0

嗨,大家好,我嘗試了確切的事情,但我仍然從獲得'X-RequestDigest'部分獲得'403:FORBIDDEN'消息。我該怎麼做?請分享我如何解決這個問題。非常感謝! –

+0

「X-RequestDigest」:$(「#__ REQUESTDIGEST」)。val() - 使用sharepoint默認主頁面 – Vaibhav

相關問題