SharePoint Online Nintex表单SPGetCurrentUser()返回空白的解决办法咨询
解决Nintex Forms在SP Online中
NWF$().SPServices.SPGetCurrentUser()返回空白的问题 检查SPServices脚本加载状态
迁移到SPO后,原SP2019环境里的SPServices引用路径可能失效。打开Nintex表单的JavaScript设置,确认SPServices脚本的引用地址是SPO站点内的有效路径(比如上传到站点文档库的脚本,使用相对URL)。也可以在脚本中添加console.log(NWF$().SPServices),打开浏览器控制台查看是否能输出对象,以此判断脚本是否加载成功。替换为SPO原生API获取当前用户
SPServices的SPGetCurrentUser()方法在SPO环境下可能存在API兼容问题,直接使用SPO原生接口更可靠:- REST API示例:
NWF$.ajax({ url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/currentuser", headers: { "Accept": "application/json;odata=verbose" }, success: function(data) { var currentUserName = data.d.Title; // 此处编写后续业务逻辑 }, error: function(err) { console.log(err); } }); - SP.js示例(需先加载SP.js):
ExecuteOrDelayUntilScriptLoaded(function() { var ctx = new SP.ClientContext.get_current(); var currentUser = ctx.get_web().get_currentUser(); ctx.load(currentUser); ctx.executeQueryAsync(function() { var userName = currentUser.get_title(); // 此处编写后续业务逻辑 }, function(sender, args) { console.log(args.get_message()); }); }, "sp.js");
- REST API示例:
检查权限与表单设置
确认当前用户在SPO站点和目标列表上拥有读取用户信息的权限,权限不足也会导致返回空值。同时检查Nintex Forms的设置,确保允许JavaScript执行的选项处于开启状态,未限制脚本运行。调整脚本执行时机
若代码执行时表单或相关脚本尚未完全加载,也会导致返回空白。可将获取用户的代码放到表单就绪事件中:NWF.FormFiller.Events.RegisterAfterReady(function() { var user = NWF$().SPServices.SPGetCurrentUser({ fieldName: "Title", debug: false }); console.log(user); });
内容的提问来源于stack exchange,提问作者Raheel
相关产品推荐
相关产品推荐

