0

我正在尝试使用 REST API 在 Sharepoint 上创建列表项。当我在根站点或根/子站点上创建项目时 - 一切都很棒。但是,如果我尝试使用 root/teams/msteams_cc6dfd/ 之类的 URL 在 Team-site 上创建列表项,则会收到错误消息:

' <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 没有。

PS对不起我疯狂的英语。

4

1 回答 1

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 所需的权限?此帐户是否有权在您的列表所需的此站点中创建列表项?
尝试将帐户添加到网站集管理员。它在工作吗?您的列表是否具有独特的权限?可能是帐户在站点上具有贡献角色但无权访问特定列表,因为存在唯一权限。
您可以不从 1C 而是从其他方式创建列表项吗?PowerShell 脚本、控制台应用程序 C#、来自 SharePoint 网站上的一些 JavaScript?如果它工作正常,则发出 1C 代码。

于 2018-12-11T12:56:51.087 回答