通过Sharepoint在线团队网站上的REST API创建列表项

时间:2018-12-11 09:43:18

标签: sharepoint-online teamsite sharepoint-rest-api

我正在尝试使用REST API在Sharepoint上在线创建列表项。当我在根站点或根/子站点上创建项目时,一切都很棒。但是,如果我试图在团队站点上使用root / teams / msteams_cc6dfd /之类的URL创建列表项,则会出现错误:

'<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <m:code>-2130575251, System.Runtime.InteropServices.COMException</m:code> <m:message xml:lang="en-US">The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.</m:message> </m:error>'

有趣的是,此站点上的GET工作正常,但POST号没有。

P.S。对不起,我疯狂的英语。

1 个答案:

答案 0 :(得分:0)

POST请求需要X-RequestDigest标头存在于您的请求中。您可以从当前页面或/_api/web/contextinfo端点获取它。
使用此链接作为示例:https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/complete-basic-operations-using-sharepoint-rest-endpoints#writing-data-by-using-the-rest-interface
要从页面获取:"X-RequestDigest": $("#__REQUESTDIGEST").val()
要从contextinfo获取它,请创建对此端点的GET请求并提取FormDigestValue参数值。
我认为它将解决您的问题。

已更新:

可能是权限问题。 请检查该网站上的帐户权限。如果使用X-RequestDigest正确完成了所有操作,那么可能只是权限问题。此帐户是否具有调用API所需的权限?此帐户是否有权根据您的列表要求在此网站上创建列表项?
尝试将帐户添加到网站集管理员。工作正常吗?您的列表是否具有唯一权限?可能是该帐户在站点上具有Contribute角色,但由于存在唯一权限,因此无法访问特定列表。
您可以不是通过1C而是通过其他方式创建列表项吗? PowerShell脚本,控制台应用程序C#,SharePoint网站上的javascript吗?如果工作正常,则以1C代码发布。