Sharepoint 2010 SharePoint 2010:此页面的安全验证无效

Sharepoint 2010 SharePoint 2010:此页面的安全验证无效,sharepoint-2010,Sharepoint 2010,下面是我的Javascript代码,用于检索SharePoint 2010(SP)列表中的项目 但是,如果我想从其他站点检索,即 var clientContextPath = "/path/site2"; 然后,相同的代码生成异常“此页面的安全验证无效”。这是在同一个域中,因此与XSS无关 有趣的是,当我使用另一个站点时,相同的代码可以很好地工作 var clientContextPath = "/path/site3"; 请帮忙。多谢各位 确保运行javascript的页面上有以下控件:

下面是我的Javascript代码,用于检索SharePoint 2010(SP)列表中的项目

但是,如果我想从其他站点检索,即

var clientContextPath = "/path/site2";
然后,相同的代码生成异常“此页面的安全验证无效”。这是在同一个域中,因此与XSS无关

有趣的是,当我使用另一个站点时,相同的代码可以很好地工作

var clientContextPath = "/path/site3";

请帮忙。多谢各位

确保运行javascript的页面上有以下控件:

<SharePoint:FormDigest runat="server" />
当我唯一的选择是关闭页面验证时,这对我来说很有效

更新2:


看起来您可能遇到了sharepoint错误。可能尝试查看累积更新,或者作为最后手段关闭页面验证,只需确保您了解此选项的安全含义

我刚刚尝试了此解决方案,我确信它不起作用,但……它确实起作用了!基本上,这是一个从SharePoint收集新令牌的Ajax请求

$.ajax({
        url: projecturl + "/_api/contextinfo",
        method: "POST",
        headers: { "Accept": "application/json; odata=verbose"},
        success: function (data) {
            $('#__REQUESTDIGEST').val(data.d.GetContextWebInformation.FormDigestValue);

            EnsureScriptFunc('sharing.js', 'DisplaySharingDialog', function () { DisplaySharingDialog(projecturl) });

        },
        error: function (data, errorCode, errorMessage) {
            alert(errorMessage)
        }
    });
更简单的方法

UpdateFormDigest(_spPageContextInfo.webServerRelativeUrl, _spFormDigestRefreshInterval)
这是sharepoint的本机方法。只需在调用ajax请求或executeQueryAsync()之前添加此方法


来源:

我尝试了上述解决方案,但没有成功。我仍然得到安全验证是无效的异常。此外,这并不能解释为什么代码适用于其他站点,而不是这个特定站点。请查看我的更新,了解一些可用,一些不可用。这种情况在sharepoint中经常发生。谢谢Luis,不幸的是,您的其他解决方案对我也不起作用。这段代码到哪里去了?执行查询的是同一个Js文件吗?
$.ajax({
        url: projecturl + "/_api/contextinfo",
        method: "POST",
        headers: { "Accept": "application/json; odata=verbose"},
        success: function (data) {
            $('#__REQUESTDIGEST').val(data.d.GetContextWebInformation.FormDigestValue);

            EnsureScriptFunc('sharing.js', 'DisplaySharingDialog', function () { DisplaySharingDialog(projecturl) });

        },
        error: function (data, errorCode, errorMessage) {
            alert(errorMessage)
        }
    });
UpdateFormDigest(_spPageContextInfo.webServerRelativeUrl, _spFormDigestRefreshInterval)