You need to enable JavaScript to run this app. Ajax POST请求返回Bad Request错误,JSON校验正常该如何排查解决?
优惠活动
大模型
产品
解决方案
定价
更多

Ajax POST请求返回Bad Request错误,JSON校验正常该如何排查解决?

问题根因
  • 核心问题是jQuery AJAX请求的实际传输格式和声明的Content-Type不匹配:你设置了contentType: 'application/json;charset=UTF-8',但直接传入JS对象作为data参数时,jQuery默认会将对象序列化为application/x-www-form-urlencoded格式的键值对字符串(你贴的请求负载stop_date=1623758400000&start_date=1623708000000就是典型的表单格式),不属于合法JSON结构。
  • 后端Flask收到请求后,尝试按application/json解析请求体失败,无法生成request.json对象,直接返回了400 Bad Request错误。
修复方案

前端代码修改

把AJAX请求的data参数用JSON.stringify()序列化,确保传输的是JSON格式字符串即可:

// Parse datetime to timestamp and include data in a dict
let data_dict = {
    "stop_date": Date.parse(sup_limit.value),
    "start_date": Date.parse(inf_limit.value)
}
// Send the Ajax request
let request = $.ajax({
    url: url,
    type: 'POST',
    data: JSON.stringify(data_dict), // 新增JSON序列化逻辑
    contentType: 'application/json;charset=UTF-8',
});

后端可选优化(非必须,规避后续潜在报错)

当前后端代码仅在mode == 'custom'的分支中定义了start_date和stop_date,如果mode传入其他值,后续调用get_last_test_influx_record时会出现变量未定义错误,建议补充默认值或者异常分支判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 00:36:03