Spring MVC - RequestParamException 参数不存在
2022-09-04 04:39:19
我的网站最终出现了一个问题。它使用AJAX请求从使用Spring MVC的服务器获取数据。
发生的事情(间歇性地)是,有时我们会遇到这样的异常:
org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter 'page' is not present
at
这种异常发生在一些AJAX POST调用中(不仅对于这种情况!!),我们仍然无法重现它以了解发生了什么。
例如,在其中一种情况下,参数“page”(用于在用户滚动页面时加载内容 - 因此它是必需的变量)是通过AJAX调用发送的,该调用具有“data”字段,其页面参数来自如下表单:
<input type="hidden" name="page" id="page" value="1">
像这样的ajax调用($(“#filter”)和url都可以):
$.ajax({
type: "POST",
data: $("#filter").serialize(), // serializes the form's elements.
url: _ctx + URL_FILTER,
cache: false
})
我们重现它的唯一方法是将其属性“name”更改为“page”以外的其他内容。但我想事实并非如此(大多数用户甚至不打开开发人员控制台...
我已经用谷歌搜索了很多,我检查了每种可能性。控制是可以的:
(Content-Type: application/x-www-form-urlencoded; charset=UTF-8)
参数正常,AJAX看起来还行,一切似乎都还行...但是我们找不到正在发生的事情。我们已经尝试了很多可能性,但我们仍然不能强迫这些异常发生。
我们的一个假设是,有时AJAX可能会发送空的数据块,没有任何参数。但我们甚至不知道它是否真实,以及如何检查其真实性。
有哪些可能性?如何对其进行测试?
编辑:我们可以重现获取异常的方法之一:重复加载页面几秒钟(按住重新加载键一段时间)。有没有办法防止这种情况的例外?!