使用 rest api 在 SharePoint 组中添加用户不起作用
Posted
技术标签:
【中文标题】使用 rest api 在 SharePoint 组中添加用户不起作用【英文标题】:Adding user in SharePoint group using rest api not working 【发布时间】:2021-10-19 12:00:22 【问题描述】:这是我用来从 rest API 将用户添加到 SharePoint 组的代码
$.ajax(
url: siteUrl + "/_api/web/sitegroups(" + groupid + ")/users",
method: "POST",
body: JSON.stringify(
'__metadata':
'type': 'SP.User'
,
'LoginName': uloginname
),
headers:
"accept": "application/json; odata=verbose",
"X-RequestDigest": $('#__REQUESTDIGEST').val(),
"content-type": "application/json; odata=verbose",
,
success: function(data)
$("#result").append("New User:<b>" + email + "</b> added successfully to,\n SharePoint Group: " + groupname);
$("#cont").hide();
updateitem(id, email, "approve");
,
error: function(err)
$("#result").append("error occured: " + JSON.stringify(err));
);
这是我收到的错误
发生错误:"readyState":4,"responseText":""error":"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":"lang": "en-US","value":"在尝试读取条目的开头时,从 JSON 读取器读取了“EndOfInput”类型的节点。需要一个 'StartObject' 节点。"","responseJSON":"error":"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":"lang": "en-US","value":"在尝试读取条目的开头时,从 JSON 读取器中读取了类型为 'EndOfInput' 的节点。需要一个 'StartObject' 节点。","status" :400,"statusText":"错误请求"
【问题讨论】:
【参考方案1】:尝试将body: JSON.stringify()
替换为data: JSON.stringify()
【讨论】:
不起作用,当我将 "X-RequestDigest": $('#__REQUESTDIGEST').val(), 放在末尾而不是第二行时,它起作用了。但是,完全控制组中的所有用户都无法添加用户,他们都可以手动添加到站点,但是这段代码一直给他们这个错误。一旦网站集管理员能够。所有用户都拥有完全控制权并且是组中的所有者。不知道是什么问题。以上是关于使用 rest api 在 SharePoint 组中添加用户不起作用的主要内容,如果未能解决你的问题,请参考以下文章
SharePoint 2013 REST API AJAX 更新工作流任务
从sharepoint rest api下载文件时出现400错误
使用 REST API 查询 Sharepoint Online 并在正文中传递查询 (POST)