解决方案

HTTP请求报错:400 Bad Request解决方法!!(终极整理)

seo靠我 2023-09-25 06:06:05

问题场景:当项目的前端页面使用ajax请求访问后端时,出现该错误。

我这里是测试接口时,发生了错误。

原因一:请求参数个数不对。

后端接口上明确规定了请求参数的个数。比如:接口(方法)中的值中使用了requSEO靠我estparam注解,requestparam注解中有个require属性,默认为true,意思则是,必须要传该参数的值(该参数不可为空)。

解决办法:

1.如果该参数是可传可不传的,修改require属SEO靠我性为false。

2.检查前端js文件中对应的ajax请求中的请求数据是否为空,或者是否有该参数。

原因二:请求参数的类型不对

常见情况有:前端传时间格式,后端用String接收。或者前端传的不是json数SEO靠我据,后端实体类封装不了。

解决方法:

1.检查前后端对应参数类型是否对应。

2.前端ajax请求如果是post请求,同时contentType属性为

contentType:application/json;SEO靠我charset=UTF-8,这时候前端data传值必须为json字段串,要将对应对象使用JSON.stringify(param)将对象转化成json字段串。

例子如下:

// 创建对象 SEO靠我var person = new Object() // 添加属性 person.name = 张三 person.sex = 男 $.SEO靠我ajax({url: ctxPath + /save, //请求路径data: JSON.stringify(person), //请求参数,将对象转json字符串type:POST, //请求类型cSEO靠我ontentType: application/json;charset=UTF-8, //请求数据类型dataType:text, //返回数据类型 如果后端返回一个消息对象 这里为jsonsuccSEO靠我ess : function (result) {console.log(result);},error: function (err) {console.log(result);} SEO靠我});

原因三:Get请求的url长度超过浏览器或web服务器限制。

浏览器对url的长度限制自行上网搜索。这里简单说一下常用的两个浏览器对url长度的限制。

1.谷歌(chrome)浏览器:8182字节

2SEO靠我.火狐(Firefox)浏览器:65536字节

服务器对url的限制

Tomcat:长度限制为8192字节

nginx:可以通过设置属性来扩展url长度

large_client_header_buffersSEO靠我 4 1m (请求行(url)+请求头的数据为4*1024k)

例如http {include mime.types;default_type application/octet-stream;largSEO靠我e_client_header_buffers 4 1k; // http请求行(url)最大为1kserver {listen 80;server_name 192.168.1.100;}serveSEO靠我r {listen 80 default; // 当有多个server模块时,会优先使用default server 的属性配置server_name 192.168.1.100;large_clieSEO靠我nt_header_buffers 4 1m;} }

Nginx配置学习:https://www.jianshu.com/p/20a687873bf0

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2