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

Python requests可正常POST请求 同逻辑AJAX返回400错误如何解决

解决方案

Python requests 库的json=payload参数会默认执行两个核心操作:

  • 自动将Python字典序列化为JSON格式字符串
  • 自动在请求头中添加Content-Type: application/json标识,告知服务端请求体为JSON格式

你之前的AJAX代码没有同时满足这两个要求,因此触发400参数错误,修改后的正确代码如下:

var jsonData = {"a":"b"}; // 需和Python代码中payload的字段、取值完全对应

$.ajax({
  url: url,
  type: 'POST',
  data: JSON.stringify(jsonData), // *必须*将JS对象序列化为JSON字符串
  contentType: 'application/json; charset=utf-8', // *必须*显式指定请求体格式为JSON
  dataType: 'json', // 若后端返回JSON格式响应可保留,否则可注释
  success: function(res) {
    console.log('请求成功', res);
  },
  error: function(e) {
    console.log('请求失败', e);
  }
});

常见踩坑说明

  • 如果已经配置了上述两项还是报错,请先检查jsonData的字段名、字段类型是否和Python中payload完全一致,字段不匹配也会导致服务端校验失败返回400
  • 不要直接传入未序列化的JS对象作为data参数:jQuery默认会将其转换为application/x-www-form-urlencoded格式的表单参数,和服务端要求的JSON格式不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:45:05