远程服务器无法正常工作的原因是,当通过AJAX获取数据时,响应JSON必须包含一些元数据以及实际记录。
如果您查看可动态化文档中的AJAX示例,则可以单击“查看AJAX数据”以查看格式:
{ "records": [ { "someAttribute": "I am record one", "someOtherAttribute": "Fetched by AJAX" }, { "someAttribute": "I am record two", "someOtherAttribute": "Cuz it's awesome" }, { "someAttribute": "I am record three", "someOtherAttribute": "Yup, still AJAX" } ], "queryRecordCount": 3, "totalRecordCount": 3}您可以看到实际结果数组嵌套
"records"在响应JSON中,并且它还返回集合中总共有多少条记录以及当前集合中有多少条记录。
动态数据需要此元数据的原因是为了在表底部进行分页和记录计数文本。由于您的服务器正在执行实际的查询,排序和分页(例如,通过数据库查询或其他服务器端处理),因此可动态化只能看到最终结果。因此,可动态化永远不会知道:
集合中有多少总记录与
筛选/查询集中有多少条记录(跨所有页面)与
筛选/查询的分页集中有多少条记录(在当前页面上)。
从返回的结果中可以得出的唯一可推论结果是从上面的(3),即当前页面上已过滤/查询的集中有多少条记录。因此,它需要从服务器返回的JSON来告诉它(1),即
totalRecordCount和;(2),即
queryRecordCount。
当然,如果您不希望所有这些,可以关闭分页和记录计数文本,并告诉dynatable结果将位于服务器返回的JSON的根目录:
$('#remote').dynatable({ features: { paginate: false, recordCount: false }, dataset: { ajax: true, ajaxOnLoad: true, ajaxUrl: '//www.dynatable.com/dynatable-ajax.json', records: [] }, params: { records: '_root' }});


