这是我的 Javascript 代码,用于检索 SharePoint 2010 (SP) 列表中的项目。
var clientContextPath = "/path/site1";
var clientContext = new SP.ClientContext(clientContextPath);
var oList = clientContext.get_web().get_lists().getByTitle(list);
var camlQuery = new SP.CamlQuery();
...
但是,如果我想从其他网站检索,即
var clientContextPath = "/path/site2";
那么相同的代码会生成异常“此页面的安全验证无效”。这是在同一个域内,因此与 XSS 无关。
有趣的是,当我使用另一个网站时,相同的代码可以正常工作
var clientContextPath = "/path/site3";
请帮忙。谢谢。
确保您运行 javascript 的页面具有此控件:
<SharePoint:FormDigest runat="server" />
FormDigest 根据用户、站点和时间在您的页面内添加安全令牌。页面回发后,安全令牌就会得到验证。安全令牌生成后,其在可配置的时间内有效。
http://ranaictiu-technicalblog.blogspot.com.au/2010/02/sharepoint-2010-client-object-model-for.html http://ranaictiu-technicalblog.blogspot.com.au/2010/02/sharepoint-2010-client-object-model-for.html
UPDATE:如果上述方法不起作用,请在执行查询之前尝试以下操作:
function CustomUpdateFormDigest()
{
if(window._spPageContextInfo != null)
{
var $v_2 = window._spPageContextInfo;
var $v_3 = $v_2.webServerRelativeUrl;
var $v_4 = window._spFormDigestRefreshInterval;
UpdateFormDigest($v_3, $v_4);
}
}
CustomUpdateFormDigest();
当我唯一的选择是关闭页面验证时,这对我有用。
更新2:
看来您可能遇到了共享点错误。也许尝试进行累积更新,或者作为最后的手段关闭页面验证,只需确保您了解此选项的安全含义
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)