required string parameter 'XXX'is not present 的几种解决方法
今天前端js里调用后端的方法,出现了required string parameter的错误,再次记录一下解决方法!
前端的调用如下
后端控制层代码如下:
修改后端代码:
查询了网上大佬出现这种情况的几种解决方式,本问题为此情况(前端表单参数传递为json字符串,后端接收需要添加@responseBody注解使返回结果为json格式)
还有几种情况,暂时没遇到,也查阅大佬们的信息记录在这里:
-
情况一:原因是由于头文件类型不对,可以在MediaType中选择合适的类型,例如GET和POST
-
情况二:jquery提交delete时,不支持@RequestParam,只支持@PathVariable形式
-
情况三:若api在调用的时候,如果存在重类型,但不重名;例如:/id与/name,两者在类型上是一样的
-
情况四:这里提示Required String parameter 'XXX' is not present并不一定是XXX的错,也有可能是后面的参数错误。总的来说就是页面传递的参数和后台接受参数名自不匹配。
(例如:前端表单参数传递为json字符串,后端接收需要添加@responseBody注解使返回结果为json格式) -
情况五:传递的参数里面包含特殊符号,比如前台传递字符串不能包含逗号等。(待证明)
-
情况六:传的参数是undefined;