首页 > Web开发 > 详细

SharePoint Modern页面ClientContext的错误URL

时间:2020-04-20 13:31:00      阅读:69      评论:0      收藏:0      [点我收藏+]

最近项目是要做一个SharePoint Framework的App,由于要从MMS中加载数据,所以代码中直接使用spComponentLoader加载了SP.js。但在实际开发测试中发现,在调用SP.ClientContext.get_current()的时候,某些情况下ClientContext是有问题的。

暂时知道的影响范围包括:

  1. 前提肯定是Modern View了。
  2. 当前访问的页面URL没有以.aspx结尾的(例如首页)。
  3. 与当前Site是否Connect了Group无关。

例如当Site Url为https.//tenant.sharepoint.com/sites/abc时,上述方法返回的ClientContext会使用类似于https://tenant.sharepoint的错误URL,从.com之后都被截取了。所以在之后JSOM尝试去调用_api/contextinfo的时候,都会报错。

到目前为止,微软官方并没有给出解决方案。可以暂时使用以下方法解决。

//----workaround
var clientContext = window.location.pathname.indexOf(‘.aspx‘) > -1 ? SP.ClientContext.get_current() : new SP.ClientContext(window.location.pathname);
//----test
var targetWeb = clientContext.get_web();
clientContext.load(targetWeb);
clientContext.executeQueryAsync(()=> console.log(targetWeb));

 

虽然不完美,但是解决了问题。

SharePoint Modern页面ClientContext的错误URL

原文:https://www.cnblogs.com/kay-zhao/p/12736724.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!