0

我正在尝试通过 SharePoint Online 中的 JSOM 获取登录用户的详细信息。

下面是我正在尝试的代码:

SP.SOD.registerSod('sp.js', "/_layouts/15/sp.js");
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', getCurrentUser);

function getCurrentUser() {
    try {
        var clientContext = new SP.ClientContext.get_current();
        var tempcurrentUser = clientContext.get_web().get_currentUser();
        clientContext.load(tempcurrentUser);
        clientContext.executeQueryAsync(function () {
            prf.loggedUser = tempcurrentUser.get_id();
            var userAcc = tempcurrentUser.get_loginName();                
        }, queryFailure);
    }
    catch (err) {
        queryFailure();
    }
}

function queryFailure() {
    alert('Error while accessing Active Directory');
}

在上面的代码中,当我尝试访问SP.ClientContext.get_current()时,我收到错误消息,指出 SP.ClientContext 未定义。

我是 SharePoint Online 的新手,这个问题可能听起来很简单,但我愿意学习。

注意:以上代码在 SharePoint 2013 中运行良好。

4

3 回答 3

1

要在线获取 SharePoint 中的用户信息,无需编写代码。您可以使用 Microsoft 提供的现有_spPageContextInfo

带输出的代码:

在此处输入图像描述

于 2018-07-12T05:31:14.977 回答
0

而不是使用 SP.SOD.executeFunc 尝试使用

'executeOrDelayUntilScriptLoaded'

https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ff411788(v%3doffice.14)

于 2018-07-11T16:14:51.373 回答
0

在 SharePoint Online 中,我建议您使用 REST API 和 jQuery Ajax 来实现它。

<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    $.ajax({
        url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/CurrentUser",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose"},
        async:false,
        success: function (data) {
            var userId=data.d.Id;
            var loginName=data.d.LoginName;
            alert("UserId:"+userId+"  LoginName:"+loginName);
        },
        error: function (err) {
            console.log(err);
        }
    });
});
</script>

如果您想获取当前的用户个人资料信息,我们可以使用下面的 REST API。

https://siteurl/_api/SP.UserProfiles.PeopleManager/GetMyProperties

参考:SharePoint 2013:使用 REST API 获取 UserProfile 属性

于 2018-07-12T01:26:09.110 回答