You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery DataTable仅绑定部分数据,取消列注释触发Ajax错误

问题分析与解决方案

嘿,我一眼就揪出问题所在了!你遇到的这个DataTables Ajax错误,根源特别隐蔽——返回的JSON数据里,那些带Id的字段名末尾都多了个空格!

你看返回的这段数据:

{ 
  "draw": "1", 
  "recordsFiltered": 1, 
  "recordsTotal": 1, 
  "data": [{ 
    "TitleName": "w", 
    "CustomerName": "q",
    // ... 其他正常字段
    "ContentTitleId ": 1,  // 注意这里字段名最后有个空格!
    "MailClassId ": 1, 
    "ProcessingCategoryId ": 1, 
    "ServiceTypeId ": 1, 
    "TransportationTypeId ": 1 
  }] 
}

而你在前端DataTable的columns配置里写的是{ "data": "ContentTitleId" }——没有末尾的空格!DataTable找不到对应的字段,自然就抛出Ajax错误了。

解决办法有两个,推荐第一个:

  • 方案一(推荐):修正后端返回的字段名
    把后端生成JSON时那些Id字段末尾的空格去掉,让字段名和你前端配置的完全一致,比如把"ContentTitleId "改成"ContentTitleId"。这是最规范的做法,能避免后续其他地方因为字段名不一致出问题。

  • 方案二:临时适配前端配置
    如果暂时没法修改后端,那就在前端的columns配置里给字段名加上对应的空格,比如:

    columns: [
      { "data": "TitleName" },
      { "data": "CustomerName" },
      { "data": "ServiceType" },
      { "data": "MailClass" },
      { "data": "ProcessingCategory" },
      { "data": "Origin" },
      { "data": "DateModified" },
      { "data": "IsActive" },
      { "data": "ContentTitleId " },  // 加上末尾的空格
      { "data": "MailClassId " },
      { "data": "ProcessingCategoryId " },
      { "data": "ServiceTypeId " },
      { "data": "TransportationTypeId " }
    ]
    

补充说明:

为什么之前注释掉这些列就正常?因为DataTable只会去匹配你配置的columns对应的字段,前面的字段名没有空格,能正确找到数据,所以不会报错;一旦加上那些带空格的字段配置,DataTable找不到对应字段,就触发了错误提示。

内容的提问来源于stack exchange,提问作者riki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:39:09