此页面的安全验证无效并且可能已损坏。请使用网络浏览器的后退按钮重试您的操作

Ask*_*ous 3 sharepoint webhooks sharepoint-2013 sharepoint-rest-api

我正在尝试为共享点列表创建一个网络挂钩。不幸的是,唯一的方法是通过调用 API。因此,我调用 API 来创建自己的 Web 挂钩,连接到我的共享点站点中的自定义列表。

我在我的共享点网站中打开了 Chrome 中的开发工具,并使用了以下代码:

fetch("https://my-org.sharepoint.com/sites/my-site/_api/web/lists('list-id')/subscriptions", {
  "headers": {
    "accept": "application/json",
    "content-type": "application/json",
  },
  "body": "{\"resource\":\"https://my-org.sharepoint.com/sites/my-site/_api/web/lists('list-id')\",\"notificationUrl\":\"http://my-ngrok-id.ngrok.io\",\"expirationDateTime\":\"2021-11-03T21:54:41.000\"}",
  "method": "POST",
});
Run Code Online (Sandbox Code Playgroud)

但它给出了一个403错误:

{
    "odata.error": {
        "code": "-2130575251, Microsoft.SharePoint.SPException",
        "message": {
            "lang": "en-US",
            "value": "The security validation for this page is invalid and might be corrupted. Please use your web browser's Back button to try your operation again."
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Bak*_*ong 7

通常,此错误是由于表单摘要丢失或过期引起的。如果您不使用 OAuth 来授权您的请求,则这些操作需要服务器的请求表单摘要值作为 X-RequestDigest 标头的值

您可以通过向 发出带有空正文的 POST 请求来检索此值http://<site url>/_api/contextinfo。或者,如果您的代码在 SharePoint 页面中运行,您可以直接通过 SharePoint 控件“#__REQUESTDIGEST”获取它。

BR