Hi Below code always go to error handler.
Could any one help with alternative for JSOM code.
// Variables that we will use in callbacks var context; var listItem; $(document).ready(function () { emptyContact("Loading Owner Details..."); getContactFromList(); }); // Get the value from the Contact column in the Pages list function getContactFromList() { context = SP.ClientContext.get_current(); listItem = context.get_web().get_lists().getByTitle('Pages').getItemById(_spPageContextInfo.pageItemId); context.load(listItem, 'PublishingContact'); context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededc, Function.createDelegate(this, this.onQueryFailedc))); } // Delegate method to handle successful async call to load Contact column info. function onQuerySucceededc(contactColumn) { var contact = listItem.get_item('PublishingContact'); if (contact) { getAccountName(contact); } else { emptyContact("Could not retrieve Contact for this page."); } } // Delegate method to handle failure of async call to load Contact column info. function onQueryFailedc(sender, args) { emptyContact("Could not retrieve Contact for this page."); } // Load User Profile information based on the account name of the supplied page Contact function getAccountName(contact) { var username = contact.get_lookupValue(); jQuery.ajax({ url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/GetUserById(" + contact.$2Z_1 + ")", type: "GET", headers: { Accept: "application/json; odata=verbose" }, success: displayProfileInformation, error: handleAccountNameError }); } function handleAccountNameError(request, textStatus, error) { emptyContact("Could not request User Profile for Contact."); } // Read and display the detailed User Profile information for supplied Account function displayProfileInformation(ajaxResponse) { var accountName = ajaxResponse.d.LoginName; // prepare peoplemanager and profile properties request var peopleMgr = new SP.UserProfiles.PeopleManager(context); context.load(peopleMgr); var profileProperties = peopleMgr.getPropertiesFor(accountName); context.load(profileProperties); // execute the command against SharePoint context.executeQueryAsync( // success callback function () { // contact picture $('.q_OwnerImage').children().remove(); var myPicture = profileProperties.get_pictureUrl(); if (myPicture == null) { myPicture = ""; } var myPictureHTML = '<img src="/_layouts/15/userphoto.aspx?url=' + myPicture + '" alt="Contact"/>'; var personProperties = profileProperties.get_userProfileProperties(); $('.q_OwnerImage').append(myPictureHTML); alert(personProperties.FirstName); }, // Error handler callback handleProfileLoadError); } function handleProfileLoadError(request, textStatus, error) { emptyContact("Could not load detailed Profile for Contact."); }
It does not return result when function getAccountName(contact) called. The Ajax didn't respond.
I tried in URL like this
https://mysite/_api/Web/GetUserById(5)
and got below error
<?xml version="1.0" encoding="UTF-8"?> -<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code>-2146232832, Microsoft.SharePoint.SPException</m:code><m:message xml:lang="en-US">User cannot be found.</m:message></m:error>
I referred below two links
http://vrdmn.blogspot.com.au/2013/02/sharepoint-2013-working-with-user.html
Murali Krishna Dittakavi *********************** If my answer/post resolved your query could you mark the post as answered. If it is helpful then vote as Helpful. Thanks