【问题标题】:Sharepoint REST API Call Status 403 FORBIDDENSharepoint REST API 调用状态 403 FORBIDDEN
【发布时间】:2014-09-30 20:45:00
【问题描述】:

我需要通过 REST Api 在 Sharepoint 列表中更新或创建新对象。我创建新项目或编辑现有项目的 REST 调用返回 Status 403: FORBIDDEN,我不清楚为什么。用户拥有编辑和阅读列表所需的所有访问权限。如何继续并让这些 REST 调用通过?

//update current item
$.ajax({
    url: "/sitename/_api/web/Lists/getbytitle('metricList')/items(" + results[i].Id + ")",
    type: "POST",
    data: JSON.stringify({
        '__metadata': {
            'type': 'SP.Data.iconMetricsListItem'
        },
        'numClicks': temp
    }),
    headers: {
        "IF-MATCH": "*",
        "X-HTTP-Method":"MERGE",
        "accept": "application/json;odata=verbose",
        "content-type": "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val()
    }
});


//create new item
$.ajax({
    url:"/sitename/_api/web/Lists/getbytitle('metricList')/items",
    type: "POST",
    contentType: "application/json;odata=verbose",
    data: JSON.stringify(item),
    headers: {
        "Accept": "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val()
    },
    success: function (data) {
    },
    error: function (data) {
    }
});

【问题讨论】:

  • 这是否与共享点在同一台服务器上运行?如果不是,它被认为是跨域的,你需要确保它被相应地设置。有时它就像添加'callback =?'一样简单进入网址。
  • 此功能将由具有适当权限的用户从 Sharepoint 页面触发。这需要跨域调用吗?我以前从未使用过跨域调用,但话说回来,我以前只用 REST 阅读过,从未写过
  • 根据您的评论,它不应该是跨域的。您的代码对我来说看起来是正确的,所以我不确定发生了什么。这几乎是我用过的一个字一个字没有问题。

标签: jquery rest sharepoint


【解决方案1】:

我看不到您的授权标头。如果这不是作为请求的一部分发送的,您将始终收到 403 状态代码,即使您有一个有效的请求摘要标头。

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2015-11-23
    • 2019-03-05
    • 2012-02-26
    • 1970-01-01
    • 2015-09-19
    相关资源
    最近更新 更多