问题遇到的现象和发生背景
通过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
]
]
}