0x800a01bd-JavaScript运行时错误:对象不存在';不支持此操作-剑道UI

0x800a01bd-JavaScript运行时错误:对象不存在';不支持此操作-剑道UI,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,我做错了什么?我只想从API中获取一些数据并将其显示在屏幕上: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Kendo UI Test</title> <link href="styles/kendo.common.min.css" rel="stylesheet" />

我做错了什么?我只想从API中获取一些数据并将其显示在屏幕上:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Kendo UI Test</title>
        <link href="styles/kendo.common.min.css" rel="stylesheet" />
        <link href="styles/kendo.default.min.css" rel="stylesheet" />
        <script src="js/jquery.min.js"> </script>
        <script src="js/kendo.web.min.js"> </script>
    </head>
    <body>
        <div id="grid"></div>

        <script type="text/javascript">
            $(document).ready(function()
            {
                var retrievedData = new kendo.data.dataSource({
                    transport: {
                        read: {
                            url: "http://puppygifs.tumblr.com/api/read/json",
                            dataType: "json"
                        }
                    }
                });

                $("#grid").kendoGrid({
                    dataSource: retrievedData,
                    pageSize: 10
                });
            });

        </script>
    </body>
</html>
编辑:

如何修改代码以从如下所示的对象捕获数据:

[
{
<NotificationNode>k__BackingField: {
isDirty: false,
isRecordAdded: false,
isRecordDeleted: false,
<CaseStatus>k__BackingField: null,
<CaseName>k__BackingField: null,
<CaseType>k__BackingField: null,
<CaseStage>k__BackingField: null,
<CaseNotificationId>k__BackingField: 0,
<CaseId>k__BackingField: 0,
<Comments>k__BackingField: null,
<WarningDays>k__BackingField: 0,
<NotificationDate>k__BackingField: "0001-01-01T00:00:00",
<LetterUrl>k__BackingField: null,
<NotificationId>k__BackingField: 0,
<NotificationDescription>k__BackingField: null,
<NotificationCount>k__BackingField: 1889,
<ParamValue1>k__BackingField: null,
<ParamValue2>k__BackingField: null,
<ParamValue3>k__BackingField: null,
<ParamValue4>k__BackingField: null,
<ParamValue5>k__BackingField: null,
<NotificationStatus>k__BackingField: 0,
<Checked>k__BackingField: false,
notificationTypeId: 1,
notificationType: "Add/Edit Gross Earnings",
actionPageName: null,
param1: null,
param2: null,
param3: null,
param4: null,
param5: null,
dateEntered: "0001-01-01T00:00:00",
whoEntered: 0,
dateChanged: "0001-01-01T00:00:00",
whoChanged: 0
},
<Notifications>k__BackingField: [ ],
<IsExpanded>k__BackingField: false
},
[
{
k__BackingField:{
isDirty:错,
以色列:错,
isRecordDeleted:false,
k__BackingField:null,
k__BackingField:null,
k__BackingField:null,
k__BackingField:null,
k__BackingField:0,
k__BackingField:0,
k__BackingField:null,
k__BackingField:0,
k__BackingField:“0001-01-01T00:00:00”,
k__BackingField:null,
k__BackingField:0,
k__BackingField:null,
库尤·贝克菲尔德:1889年,
k__BackingField:null,
k__BackingField:null,
k__BackingField:null,
k__BackingField:null,
k__BackingField:null,
k__BackingField:0,
k__BackingField:错,
notificationTypeId:1,
通知类型:“添加/编辑总收入”,
actionPageName:null,
param1:null,
param2:null,
参数3:null,
参数4:null,
参数5:null,
输入日期:“0001-01-01T00:00:00”,
输入者:0,
日期更改:“0001-01-01T00:00:00”,
更改日期:0
},
k__BackingField:[],
k__BackingField:错误
},

您在数据源选项上有一个输入错误,它必须是
dataSource
;您正在读取的数据来自另一个来源,因此您可以将
jsonp
用作
dataType

提供的服务返回一组复杂的数据,您必须只读数据才能在网格中显示,并绑定要在列中显示的数据

可以使用和参数执行此操作

代码:


工作演示:

了解哪行代码会产生问题将非常有帮助。必须是DataSource(大写D)@Dr.Molle,我们正在取得进展!这修复了此错误。现在我怎么在屏幕上看不到任何内容?我需要显式定义要显示的json列吗?我不熟悉剑道(在你提出问题之前,我从未听说过)。我猜DataSource需要一个数组,但tumblr的响应是一个对象。你需要设置一个模式来从响应中获取数组:(使用“posts”而不是“results”)。然后你至少会得到表头(不幸的是,不是数据,无法告诉你原因,出现了一个错误)“无效模板”)。但是,您必须使用(现已删除)答案中建议的数据类型“jsonp”。非常感谢Edward。我只是不理解这部分:模式:{data:“posts”}。您是如何获得“posts”的“Edward,我编辑了我的帖子。我得到的对象的格式不同,它不会在网格上提取数据。你能帮我看看如何显示以这种格式返回的数据吗?(所有这些“k_BackingField”都是“posts”字符串是包含行列表的JSON对象,我通过检查提供的web方法找到它。您的案例与提供的问题不同……但是什么是“k_ubackingfield”,您可以提供JSFIDLE吗?
[
{
<NotificationNode>k__BackingField: {
isDirty: false,
isRecordAdded: false,
isRecordDeleted: false,
<CaseStatus>k__BackingField: null,
<CaseName>k__BackingField: null,
<CaseType>k__BackingField: null,
<CaseStage>k__BackingField: null,
<CaseNotificationId>k__BackingField: 0,
<CaseId>k__BackingField: 0,
<Comments>k__BackingField: null,
<WarningDays>k__BackingField: 0,
<NotificationDate>k__BackingField: "0001-01-01T00:00:00",
<LetterUrl>k__BackingField: null,
<NotificationId>k__BackingField: 0,
<NotificationDescription>k__BackingField: null,
<NotificationCount>k__BackingField: 1889,
<ParamValue1>k__BackingField: null,
<ParamValue2>k__BackingField: null,
<ParamValue3>k__BackingField: null,
<ParamValue4>k__BackingField: null,
<ParamValue5>k__BackingField: null,
<NotificationStatus>k__BackingField: 0,
<Checked>k__BackingField: false,
notificationTypeId: 1,
notificationType: "Add/Edit Gross Earnings",
actionPageName: null,
param1: null,
param2: null,
param3: null,
param4: null,
param5: null,
dateEntered: "0001-01-01T00:00:00",
whoEntered: 0,
dateChanged: "0001-01-01T00:00:00",
whoChanged: 0
},
<Notifications>k__BackingField: [ ],
<IsExpanded>k__BackingField: false
},
  $(document).ready(function () {
      var retrievedData = new kendo.data.DataSource({
          transport: {
              read: {
                  url: "http://puppygifs.tumblr.com/api/read/json",
                  dataType: "jsonp"
              }
          },
          schema: {
              data: "posts"
          }
      });
      $("#grid").kendoGrid({
          dataSource: retrievedData,
          columns: [{
              field: "id",
              title: "ID",
              width: 150
          }, {
              field: "url",
              title: "URL",
              width: 150
          }]
      });
  });