2013-05-29 25 views
3

我正在使用JavaScript使用SharePoint RESTful API。當使用_spPageContextInfo它不起作用。如何在sharepoint中使用_spPageContextInfo應用程序

錯誤:未捕獲的ReferenceError:_spPageContextInfo沒有定義

這裏是我的代碼使用

<html xmlns="http://www.w3.org/1999/xhtml"> 

<script src="../Scripts/jquery-1.8.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $.getJSON(_spPageContextInfo.webServerRelativeUrl + "/_api/web/currentuser", 
      function (data) { 
       $("#message").text('hello' + data.d.Title); 
      }); 
    }); 
</script> 

...

+1

您是否缺少實際具有_spPageContextInfo的必要元素?看看[這篇文章](http://sharepoint.stackexchange.com/questions/116359/bare-minimum-page-to-get-sppagecontextinfo-loaded)。 –

回答

0

你也許可以如下使用。

獲取當前用戶登錄::

<script type="text/javascript"> 
var userid; 
try{ 
$(document).ready(function() { 
//This will give the 'userId' by which we can get the user's info from the url as /_api/web/getuserbyid(userid) 
userid = _spPageContextInfo.userId; 
var siteurl = _spPageContextInfo.webAbsoluteUrl; 
var urlUser = siteurl + "/_api/web/getuserbyid(" +userid+")"; 
$.ajax({ 
url : urlUser, 
contentType : "application/json;odata=verbose", 
headers : { "accept" : "application/json;odata=verbose" }, 
success : onsuccess, 
error : onerror 
}); 
}); 
} 
catch(ex){alert(ex);} 

function onsuccess(data, textStatus, jqXHR){ 
alert(data.d.Title); 
alert(data.d.LoginName); 
alert(data.d.Email); 
alert(data.d.IsSiteAdmin); 
} 

function onerror(errorMessage){ 
alert(JSON.stringify(errorMessage)); 
} 
0

你可以試試這個代碼角JS和SharePoint JavaScript對象型號:

<script type="text/javascript"> 
 

 
     var app = angular.module("myApp", []); 
 
     app.controller("myCtrl", function($scope, $location) { 
 

 
      var userid = _spPageContextInfo.userId; 
 
      var requestUriGetUserDetails = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")"; 
 
      $scope.contentTypeTemplate = "application/json;odata=verbose"; 
 
      $scope.requestHeadersTemplate = { "accept" : "application/json;odata=verbose" }; 
 

 
      $.ajax({ 
 
       url : requestUriGetUserDetails, 
 
       contentType : $scope.contentTypeTemplate, 
 
       headers : $scope.requestHeadersTemplate, 
 
       success : onSuccessGetUserDetails, 
 
       error : onErrorGetUserDetails 
 
      }); 
 

 
      function onSuccessGetUserDetails(data, request){ 
 
       var varFullName = data.d.Title; 
 
       var varEmail = data.d.Email; 
 
       var varLoginName = data.d.LoginName; 
 

 
       $scope.loginName = varLoginName; 
 
       $scope.email = varEmail; 
 
       $scope.requestorEmail = varEmail; 
 
       $scope.requestorFullName = varFullName; 
 

 
       var fullNameArray = varFullName.split(" "); 
 

 
       var firstNameValue = fullNameArray[0]; 
 
       var lastNameValue = fullNameArray[1]; 
 

 
       $scope.firstName = firstNameValue; 
 
       $scope.lastName = lastNameValue; 
 

 
       $scope.$apply(); 
 
      } 
 

 
      function onErrorGetUserDetails(error) { 
 
       alert(error); 
 
      } 
 

 
     }); 
 

 
    </script>

你可以參考這個博客一步一步的指導開發與SharePoint Javascript對象模型的Angular JS。

請點擊here作爲博客鏈接。

相關問題