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