Sharepoint Rest Api来电`

时间:2016-10-18 07:39:28

标签: javascript html rest sharepoint sharepoint-2010

我正在创建一个简单的网站,我必须将一些数据保存到sharepoint列表中。我只使用html css js。我需要对Sharepoint API进行REST调用以在SP上发布数据。我试图从我的列表中获取数据(在SP中),如下所示:

$(document).ready(function() {
        processListItems(hostweburl, 'ListName');
    });

function processListItems(url, listname) {

        $.ajax({
            url: url + "/_api/web/lists/getbytitle('" + listname + "')",
            method: "GET",
            headers: {
                "Accept": "application/json; odata=verbose"
            },
            success: function(data) {
                console.log(data);      
            },
            error: function(data) {
                console.log(data);
            }
        });
    }

它返回此响应:

"{"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have permission to perform this action or access this resource."}}}"

我只引用了两个脚本:

 <script src="js/jquery-3.1.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js" type="text/javascript"></script>

它说我未经授权访问。虽然我对我的列表拥有管理员权限。请告诉我如何解决这个问题。我是否需要任何授权标头来调用Rest Api的ajax?我是Sharepoint的新手。请帮助!

3 个答案:

答案 0 :(得分:0)

我认为默认情况下在SPOnline中禁用自定义脚本。您可能必须启用它。这些链接可能有所帮助:

Access denied office 365 / SharePoint online with Global Admin account

http://vamsi-sharepointhandbook.blogspot.com/2015/07/turn-scripting-capabilities-on-or-off.html

答案 1 :(得分:0)

当您尝试从列表中提取项目时,请指定项目之前的URL。请参阅以下行语法 -

$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('"+listName+"')/items",
// Rest of the code
});

答案 2 :(得分:0)

是的,您需要一个授权标头来处理您的请求。所以您的标题应该是这样的:

headers: {
             "Accept": "application/json; odata=verbose",
             "Authorization": 'Bearer '+ **access_token**   
         }

access_token:您需要获取访问令牌才能发出请求。您可以使用Microsoft提供的adal library