Java Axios Post/Spring@RequestParam错误-“;“请求标头太大”; 我使用axios post调用将大约1500个整数的整数数组从react前端传递到Spring boot后端。
当调用时,我得到以下错误:Java Axios Post/Spring@RequestParam错误-“;“请求标头太大”; 我使用axios post调用将大约1500个整数的整数数组从react前端传递到Spring boot后端。,java,reactjs,spring,spring-boot,axios,Java,Reactjs,Spring,Spring Boot,Axios,当调用时,我得到以下错误:java.lang.IllegalArgumentException:请求头太大 我真的不知道问题是什么,也不知道如何解决。我所要做的就是从前端检索这个数字列表并遍历它们&在后端打印它们(现在)。如果你知道一个更简单的方法,请随时启发我 多谢各位 这是我的前端代码: 这是我的后端代码: 理论上,您的解决方案的工作原理与描述URI和查询字符串的RFC没有限制。不幸的是,这不是它的实现方式 客户机或服务器都可以施加限制。关于客户的限制有一个很好的解释。我不熟悉react
java.lang.IllegalArgumentException:请求头太大 我真的不知道问题是什么,也不知道如何解决。我所要做的就是从前端检索这个数字列表并遍历它们&在后端打印它们(现在)。如果你知道一个更简单的方法,请随时启发我 多谢各位 这是我的前端代码:
这是我的后端代码:
理论上,您的解决方案的工作原理与描述URI和查询字符串的RFC没有限制。不幸的是,这不是它的实现方式 客户机或服务器都可以施加限制。关于客户的限制有一个很好的解释。我不熟悉react的限制,因为我主要关注后端,您必须自己研究。 当您使用Spring时,通常有两个服务器:Tomcat和Netty。它们都限制了url的长度。Tomcat限制在,Netty限制在。1500个整数的列表可以超过这些限制 您必须为后端设置一个新的限制(对于Tomcat,链接描述了这一点,对于Netty,我从未尝试过),并希望前端不会暴露任何限制 或… 您可以使用
@RequestBody
并将该信息添加到正文中
示例():
@PostMapping(“/request”)
公共响应后控制器(
@请求主体登录信息(登录信息){
curl-i\
-H“接受:应用程序/json”\
-H“内容类型:应用程序/json”\
-X POST——数据
“{”用户名“:”约翰尼“,”密码“:”密码“}”https://localhost:8080/.../request"
我将使用
@RequestBody
而不是为此类数据设计的查询参数。您应该覆盖application.properties或application.yml文件中的默认最大http头大小
嵌入式tomcat的最大http头的默认值为8kb
只需将其粘贴到后端服务器中的application.properties文件:
server.max-http-header-size=50000
这将覆盖默认的8kb允许标头,最大值为50kb。
此外,请检查您的http头请求在服务器端包含哪些内容。理论上,头长度没有限制。但是,web服务器有限制是合乎逻辑的。我相信您使用的是tomcat作为后端服务
Tomcat默认值为4k。克服此错误的方法主要有两种:
要将tomcat配置为接受更多(新限制):
或者添加服务器。最大http头大小=65536
也请检查此链接:
注意:Imho,最好将主体用于如此大小的输入,而不是调整服务器或为此添加额外属性。使用“网络”选项卡检查标题并找出其大小。数字数组本身似乎是一个问题,这是一个请求参数,而不是标题。