一般Http请求出现400错误的情况有两种:

  • 1、bad request 意思是 "错误的请求";
  • 2、invalid hostname 意思是 "不存在的域名"。

与别的40x请求的错误不同,400 Bad Request 是由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。

即可以认为是客户端自身的原因,导致服务器不认这个请求。

那么客户端在出现什么问题会出现400错误呢?笔者总结有以下三个情况:

  • 1、前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;
  • 2、前端提交的到后台的数据应该是 json 字符串类型,而前端没有将对象转化为字符串类型;
  • 3、URL中含有非法字符。(导致框架难以拆包)

解决办法:

  • 1、对照字段名称,类型保证一致性
  • 2、使用 stringify 将前端传递的对象转化为字符串:
data: JSON.stringify(param);
  • 3、对URL参数name = value中的value部分编码。