5

我正在创建一个 Sharepoint 应用程序,并且我仅限于使用 Javascript(包括 jQuery)和 REST 端点。我想使用 Web 应用程序从主机中删除一个项目,但我收到一个错误 ( 403: FORBIDDEN)。这是我到目前为止的代码:

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

现在我发现这X-RequestDigest是强制性的,我找到了一些从 REST 中获取它的调用:

$.ajax({
    url: appweburl + "/_api/SP.AppContextSite(@target)/contextinfo/?@target='" + 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 之外的任何代码!)?

任何帮助都会得到帮助,如果您需要任何信息,请随时提出。

4

1 回答 1

4

该代码不能用于 SharePoint 2010,因为 _api 是 SP 2013 的新内容。

[更新] 也许您的意思是您的代码在 SP 2013 预览版中运行?在 SP2013 RTM 中,您需要使用:

"Accept": "application/json; odata=verbose"
于 2012-12-01T01:32:06.347 回答