【问题标题】:SharePoint 2010 Rest API error (Not retrieving data)SharePoint 2010 Rest API 错误(未检索数据)
【发布时间】:2015-03-01 04:18:06
【问题描述】:

当我运行下面的代码时,我收到以下错误: “无法获取未定义或空引用的属性‘结果’”

$(document).ready(function() { 
var iceCreamApp = {};
iceCreamApp.Truck = new Array();

//Load data from list into array right away
(function() {
    var url = "http://isaac.issharepoint.com/demo/_api/web/lists/GetByTitle('IceCreamTrucks')/items?$select=State";
    $.ajax({
        url:url,
        type:"GET",
        dataType:"json",
        headers: {"Accept": "application/json; odata=verbose"},
        success: function(data) {
            success(data);
        },
        error: function(data) {
            //failure(data);
        }
    })

        function success(data)
        {
            console.log(data);
        }
}());


})

【问题讨论】:

  • 我得到 [object object]
  • 嗨!我收到错误 401 未经授权。我该如何管理?

标签: javascript rest sharepoint-2010


【解决方案1】:

您没有使用 REST。

如果您想使用 REST,您需要以下 URI:http://my.sharepoint.com/demo/_api/

您的代码示例可以使用 REST API 重写,如下所示:

(function() {
    var url = "http://my.sharepoint.com/demo/_api/web/lists/GetByTitle('IceCreamTrucks')/items?$select=State";
    $.ajax({
        url:url,
        type:"GET",
        dataType:"json",
        headers: {"Accept": "application/json; odata=verbose"},
        success: function(data) {
            console.log(data);
        },
        error: function(data) {
            console.log(data);
        }
    })
}());

【讨论】:

    【解决方案2】:

    出现此错误是因为在 success 回调中您已经获得了 results 对象:

    success(data.d)  //<-- data.d returns results object
    

    因此,解决方案是替换该行

    function success(data)
    {
        console.log(data.d.results);
    }
    

    用这个:

    function success(results)
    {
         console.log(results);
    }
    

    在使用 SharePoint 2010 RESTful API 时,您还可以考虑使用 some library。以下示例演示如何使用datajs JavaScript library 获取列表项:

    OData.read({ 
        requestUri: _spPageContextInfo.webAbsoluteUrl + "/_vti_bin/listdata.svc/IceCreamTrucks?$select=State", 
        enableJsonpCallback: true
       }, 
       function (data) {
           for(var i =0; i < data.results.length; i++) {
               console.log(data.results[i].State);  
           } 
       }, 
       function (err) {
          // error function.
    });
    

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 2020-11-11
      • 2021-09-08
      • 2011-04-17
      • 2014-12-09
      • 1970-01-01
      • 2013-10-08
      • 2013-06-06
      • 1970-01-01
      相关资源
      最近更新 更多