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

HTTP请求报错:400 Bad Request解决方法!!(终极整理)问题场景:当项目的前端页面使用ajax请求访问后端时,出现该错误。我这里是测试接口时,发生了错误。原因一:请求参数个数不对。后端接口上明确规定了请求参数的个数。比如:接口(方法)中的值中使用了requestparam注解,requestparam注解中有个require属性,默认为true,意思则是,必须要传该参数的值(该参数不可为空)。解决办法:1.如果该参数是可传可不传的,修改require属性为false。2.检查前端js文件中对应的ajax请求中的请求数据是否为空,或者是否有该参数。

大家好,欢迎来到IT知识分享网。

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

在这里插入图片描述

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

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

解决办法:
1.如果该参数是可传可不传的,修改require属性为false。
2.检查前端js文件中对应的ajax请求中的请求数据是否为空,或者是否有该参数。
在这里插入图片描述

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

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

解决方法:
1.检查前后端对应参数类型是否对应。
2.前端ajax请求如果是post请求,同时contentType属性为
contentType:'application/json;charset=UTF-8',这时候前端data传值必须为json字段串,要将对应对象使用JSON.stringify(param)将对象转化成json字段串。

例子如下:

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

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

浏览器对url的长度限制自行上网搜索。这里简单说一下常用的两个浏览器对url长度的限制。
1.谷歌(chrome)浏览器:8182字节
2.火狐(Firefox)浏览器:65536字节

服务器对url的限制
Tomcat:长度限制为8192字节
nginx:可以通过设置属性来扩展url长度
large_client_header_buffers 4 1m (请求行(url)+请求头的数据为4*1024k)
例如

http {
    include  mime.types;
    default_type  application/octet-stream;
    large_client_header_buffers 4 1k;  // http请求行(url)最大为1k

    server {
        listen 80;
        server_name 192.168.1.100;
    }

    server {
        listen 80 default;  // 当有多个server模块时,会优先使用default server 的属性配置
        server_name 192.168.1.100;
        large_client_header_buffers 4 1m;
    }
}

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22626.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信