wangzhiwei2670 2022-08-20 22:16 采纳率: 50%
浏览 232
已结题

通过ajax获取后台数据,更新datatable,报错“DataTables warning: table id=datatable - Invalid JSON response. ”

问题遇到的现象和发生背景

通过ajax获取后台数据,更新datatable,报错“DataTables warning: table id=datatable - Invalid JSON response. ”

问题相关代码,请勿粘贴截图

flask代码:


@app.route('/result', methods = ['POST', 'GET'])
def route1():

    # 获取表单
    form = request.form

    # 设置数据库
    connStr = r'Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Users\hp\Desktop\colloge choosing\colloge_info.accdb'
    conn = pypyodbc.win_connect_mdb(connStr)
    cur = conn.cursor()
    # 设置sql
    loc = ' 所在省 = \'' + form['loc'] + '\''



    sql_order = 'select * from 普通文理 where' + loc + ';'
    cur.execute(sql_order)
    sql_result = cur.fetchall()
    num = len(sql_result)
    length = len(sql_result[0])
    # print(sql_result[0])
    # print(num, length)
    # result_json = []
    # keys = ['序号', '首选科目', '院校代号', '院校名称', '办学性质', '所在省', '门类', '专业类', '专业代号', '专业名称', '专业备注', '院校备注', '21计划', '21剩余', '22计划', '学制', '学费', '再选科目', '投档最低分', '分段人数', '最低位次', '语数成绩', '语数最高成绩', '外语成绩', '首选科目成绩', '再选科目最高成绩', '再选科目次高成绩', '志愿号']
    # for item in sql_result:
    #     result_json.append(dict(zip(keys, item)))


    return jsonify({"result" : sql_result, "num": num, "length" : length})

js部分


    <script type="text/javascript">
      $("#TabChange").click(function(){
        $.ajax({
          type: 'POST',
          url:  'result',
          data: new FormData(document.getElementById("uploadForm")),
          dataType: "json",
          async: false,  
          cache: false,  
          contentType: false,  
          processData: false,
          success: function(data){
            $("#lintresult").html("1231321321");
            $("#datatable").dataTable({
              processing: true,
              serverSide: true, //开启后端模式
              destroy:true,
              ajax:data,
              columns: [
                {"result":"序号"},
                {"result":"首选科目"},
                {"result":"院校代号"},
                {"result":"院校名称"},
                {"result":"办学性质"},
                {"result":"所在省"},
                {"result":"门类"},
                {"result":"专业类"},
                {"result":"专业代号"},
                {"result":"专业名称"},
                {"result":"专业备注"},
                {"result":"院校备注"},
                {"result":"21计划"},
                {"result":"21剩余"},
                {"result":"22计划"},
                {"result":"学制"},
                {"result":"学费"},
                {"result":"再选科目"},
                {"result":"投档最低分"},
                {"result":"分段人数"},
                {"result":"最低位次"},
                {"result":"语数成绩"},
                {"result":"语数最高成绩"},
                {"result":"外语成绩"},
                {"result":"首选科目成绩"},
                {"result":"再选科目最高成绩"},
                {"result":"再选科目次高成绩"},
                {"result":"志愿号"}
                ],

              paging: true,//开启分页
              ordering: true,//开启排序
              searching: true,//开启搜索
              iDisplayLength : 50,//默认长度
              });
          }
        })
      })
    </script>

后台获取的数据

{
  "length": 28, 
  "num": 4707, 
  "result": [
    [
      117.0, 
      "物理本科", 
      "0169", 
      "鞍山师范学院", 
      "公办", 
      "辽宁省", 
      "文学", 
      "外国语言文学类", 
      "38", 
      "日语", 
      "(外语语种:英语或日语)", 
      null, 
      2.0, 
      null, 
      null, 
      "四年", 
      "4800", 
      "不限", 
      486.0, 
      396.0, 
      49378.0, 
      192.0, 
      99.0, 
      116.0, 
      36.0, 
      72.0, 
      70.0, 
      38.0
    ], 
    [
      118.0, 
      "物理本科", 
      "0169", 
      "鞍山师范学院", 
      "公办", 
      "辽宁省", 
      "文学", 
      "外国语言文学类", 
      "39", 
      "西班牙语", 
      null, 
      null, 
      2.0, 
      null, 
      null, 
      "四年", 
      "4800", 
      "不限", 
      480.0, 
      376.0, 
      51763.0, 
      189.0, 
      113.0, 
      133.0, 
      28.0, 
      67.0, 
      63.0, 
      28.0
    ], 
    [
      119.0, 
      "物理本科", 
      "0169", 
      "鞍山师范学院", 
      "公办", 
      "辽宁省", 
      "管理学", 
      "工商管理类", 
      "40", 
      "会计学", 
      null, 
      null, 
      5.0, 
      null, 
      null, 
      "四年", 
      "5200", 
      "不限", 
      501.0, 
      400.0, 
      43440.0, 
      196.0, 
      99.0, 
      117.0, 
      56.0, 
      70.0, 
      62.0, 
      8.0
    ]
]
}

  • 写回答

5条回答 默认 最新

  • 爱吃苦瓜的猿 2022-08-21 08:57
    关注
    获得1.20元问题酬金

    你这个应该是请求的url有问题,导致没有查询到结果,系统直接返回的是报错码不是json,所以就出现这种情况。
    可以尝试下面的修改思路。
    1- 把请求的url换成绝对路径

    url:  '/result',
    

    2- 如果换成绝对路径不行,你再单独请求一下这个/result这个路径,测试一下返回的结果是否正常。

    另外,建议把error函数也添加上,出现error时可以进行异常提醒。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 创建了问题 8月20日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件