0
안녕하세요 현재 사용자의 이름을 검색하고 메시지 상자에 표시하는 Content Editor Web Part
에 다음 코드를 가지고 :자바 스크립트를 사용하여 사용자 속성을 검색하는 방법
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
function getUser() {
var userid = _spPageContextInfo.userId;
//alert(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 on retrieving current user.");
}
}
$(document).ready(function() {
getUser();
});
</script>
가 나는 또한 함께 이메일을 표시 할 수있었습니다을 alert(data.d.Email);
. 그러나
, 내가 data.d.Groups
호출 시도 (the documentation에 따라 - Groups
속성이 존재 함을 보여주는), 나는 [object Object]
있는 메시지 상자를 참조하십시오.
어떻게이 개별 항목을 가져올 수 있습니까 (내가 가정하고있는 것) 컬렉션입니까?
이 나는 시도했다 :
var group = data.d.Groups[0];
alert(group);
그러나 이것은 단지 undefined
와 함께 제공됩니다.
이 개체에 내 부서가 포함될 것이라고 생각하는데 잘못 되었습니까?
어느 쪽이든이 개체를 반복하는 방법이 있습니까? 아니면 올바르게 수행했는데 빈 배열에 있습니까?
내가F12
콘솔 창에 위의 로그 중 하나를 볼 수있는 그룹
function onSuccess(data, request) {
var loginName = data.d.Title;
console.log(loginName);
var groups = data.d.Groups;
console.log(groups);
}
로깅 당신에게
시도를 감사 (인터넷 익스플로러)
시도 2 - 아래의 코드를 사용하여 성공적인
로깅, 나는 이전과 동일한 결과를 얻을 수 있었다, 그러나 console.log()
호출이 실제로 일을 이번에는 (이전의 것들은하지 않았다 왜 아직 아무 생각이 없음) :
ExecuteOrDelayUntilScriptLoaded(init,'sp.js');
var currentUser;
function init(){
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
this.clientContext.load(currentUser);
this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}
function onQuerySucceeded() {
var groups = currentUser.get_groups();
alert(groups);
console.log(groups);
var name = currentUser.get_loginName();
alert(name);
console.log(name);
var id = currentUser.get_id();
alert(name);
var title = currentUser.get_title();
alert(title);
var email = currentUser.get_email();
alert(email);
}
function onQueryFailed(sender, args) {
alert('Request failed. \nError: ' + args.get_message() + '\nStackTrace: ' + args.get_stackTrace());
}
console.log(groups);
를 호출 한 후에는 F12 콘솔에서 다음과 같은 내용 :
가능한 경우 'data.d.Groups'을 (를) 콘솔에 기록하거나 피들을 만듭니다. – Rohit416
수신중인 정보가 확실하지 않은 경우 먼저 json의 전체 응답을보고 원하는 정보의 위치를 확인하십시오. – jmugz3
또한,'groups'는 인덱스 0에 접근하려고 시도하는 배열이라고 가정했지만, 문서에서는 객체라고합니다. [link] (https://msdn.microsoft.com/en-us/library/office/jj244862.aspx) @ Rohit416에서 제안한 것을 시도해보십시오. – jmugz3