SharePoint 2013使用JavaScript获取当前用户

Kat*_*ate 26 javascript sharepoint sharepoint-2013

如何在脚本编辑器Web部件中使用JavaScript获取当前用户名?

Kat*_*ate 35

这是适合我的代码:

<script src="/SiteAssets/jquery.SPServices-2013.02a.js" type="text/javascript"></script>
<script src="/SiteAssets/jquery.js" type="text/javascript"></script>

<script type="text/javascript">
  var userid= _spPageContextInfo.userId;
  var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
  var requestHeaders = { "accept" : "application/json;odata=verbose" };
  $.ajax({
    url : requestUri,
    contentType : "application/json;odata=verbose",
    headers : requestHeaders,
    success : onSuccess,
    error : onError
  });

  function onSuccess(data, request){
    var loginName = data.d.Title;
    alert(loginName);
  }

  function onError(error) {
    alert("error");
  }
</script>
Run Code Online (Sandbox Code Playgroud)


Mzn*_*Mzn 20

我发现了一种更简单的方法,它甚至不使用SP.UserProfiles.js.我不知道它是否适用于每个人的特定情况,但绝对值得分享.

//assume we have a client context called context.
var web = context.get_web();
var user = web.get_currentUser(); //must load this to access info.
context.load(user);
context.executeQueryAsync(function(){
    alert("User is: " + user.get_title()); //there is also id, email, so this is pretty useful.
}, function(){alert(":(");});
Run Code Online (Sandbox Code Playgroud)

无论如何,多亏了你的答案,我想与UserProfiles混在一起,尽管我的情况并不是真的有必要.


小智 13

如果您在SharePoint页面中,只需使用:

_spPageContextInfo.userId;
Run Code Online (Sandbox Code Playgroud)


brr*_*han 12

这个怎么样:

$.getJSON(_spPageContextInfo.webServerRelativeUrl + "/_api/web/currentuser")
.done(function(data){ 
    console.log(data.Title);
})
.fail(function() { console.log("Failed")});
Run Code Online (Sandbox Code Playgroud)