【发布时间】: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