Javascript 使用JSON返回数据填充jqGrid并获取未捕获的TypeError无法读取属性';0';未定义的

Javascript 使用JSON返回数据填充jqGrid并获取未捕获的TypeError无法读取属性';0';未定义的,javascript,jquery,json,jqgrid,Javascript,Jquery,Json,Jqgrid,我试图使用Jackson从我的SpringWebApp返回一些JSON,并对其进行解析并将其加载到jqGrid中 我已经通过JSONViewer扩展返回数据,并在Chrome中可见。在我看来这是正确的 使用arraydata进行的本地测试已经成功 以下是我的JSP/HTML/JS: <link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/

我试图使用Jackson从我的SpringWebApp返回一些JSON,并对其进行解析并将其加载到jqGrid中

我已经通过JSONViewer扩展返回数据,并在Chrome中可见。在我看来这是正确的

使用arraydata进行的本地测试已经成功

以下是我的JSP/HTML/JS:

 <link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/ui-darkness/jquery-ui.css' />
 <link rel='stylesheet' type='text/css' href='css/jqGrid/ui.jqgrid.css' />

 <script type='text/javascript' src='js/jquery-1.7.1.min.js'></script>
 <script type='text/javascript' src='js/jquery-ui-1.8.17.custom.min.js'></script>
 <script type='text/javascript' src='js/i18n/grid.locale-en.js'></script>
 <script type='text/javascript' src='js/jquery.jqGrid.min.js'></script>

 <script type='text/javascript'>

$(document).ready(function () {
    jQuery("#list").jqGrid({        
        url:"formSubmit.html",
        datatype: "json",
        height: 700,
        width: 1100,
        colNames: ['ReqID', 'Family', 'ControlID', 'Name', 'Description', 'Category','Priority', 'Notes', 'Parent'],
        colModel: [
        { name: 'reqID', index: 'reqID', width: 40 },
        { name: 'family', index: 'family', width: 100 },
        { name: 'controlID', index: 'controlID', width: 100 },
        { name: 'reqName', index: 'reqName', width: 175 },
        { name: 'requirement', index: 'requirement', width: 450,cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal;"' } },
        { name: 'category', index: 'category', width: 100 },
        { name: 'priority', index: 'priority', width: 100 },
        { name: 'requirementNotes', index: 'requirementNotes', width: 100 },
        { name: 'parent', index: 'parent', width: 100 }
        ],
        rowNum: 10,
        rowList: [10, 20, 30],
        pager: '#pager',
        viewrecords: true,
        jsonReader : { repeatitems: false }
    });

    jQuery("#list").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false });

});
 </script>

<table id = 'list'></table>
我一直在返回一个未捕获的TypeError,无法将未定义中的属性“0”读取为jquery.jqGrid.min.js:23中的响应,我被难住了。

从中可以看出,jqGrid通常可以工作,它使用您发布的JSON数据和代码


我只能重复我在之前的评论中已经写过的内容:参数
url:“formSubmit.html”
在我看来似乎非常可疑。如果调用某些动态组件,则URL应该没有扩展名“/myurl/”或其他扩展名“.html”。我建议您分析有关Fiddler、Firebug或IE或Chrome开发工具的HTTP流量(查看“网络”选项卡)。重要的不仅仅是HTTP正文,还有像“Content Type”这样的HTTP头。

尝试在jsonreader中设置
root:“rows”

非常奇怪的是,jqGrid中使用的
url
选项具有
.html
扩展,并且包含(或生成)JSON数据(响应)。
url
是否应该不是MVC控制器的url?另一件奇怪但并不关键的事情是,您使用jQueryUI1.8.6中的CSS,但jQueryUI1.8.17中的JS。我的SpringMVC控制器的@RequestMapping指向一个“虚拟”html文件。我没想到这会是一个问题…但在这一点上,我急于消除变量。。。
{
"total":"1",
"page":"1",
"records":"558",
"rows":[{
    "parent":"",
    "priority":"",
    "requirementNotes":"DummyData",
    "category":"DummyData",
    "family":"DummyData",
    "requirement":"DummyData",
    "reqID":"1",
    "controlID":"DummyData",
    "reqName":"DummyData"}]
}