-
spring mvc 400 Required String parameter 'quizId' is not present 前端参数找不到5
如下图所展示, 前端发起一个异步请求,传递了一个json对象
- $scope.addQuestionToTest = function(qid){
- var sendData={"quizId":$scope.tid,"questionId":qid};
- $http({
- url: WEBROOT+"/test/addquestion",
- method: 'POST',
- headers: {
- "Authorization": Data.token()
- },
- data: sendData
- }).success(function (data) {...
firebug中的前端数据如下
头信息
以下服务端的代码- @RequestMapping(value = "/addquestion",method=RequestMethod.POST)
- @ResponseBody
- public ResponseBase addQuestion(
- @RequestParam(value="quizId", required=true) String quizId,
- @RequestParam(value="questionId", required=true) Integer questionId
- ) {
spring mvc中报错400, debug跟到spring web的DispatchServlet,发现抛出的具体异常是请求的quizId找不到奇了个怪了,为什么会找不到前端的参数,明明再firebug中都有的,请各位指教
2014年11月17日 23:46
6个答案按时间排序按投票排序
-
采纳的答案
- @RequestMapping(value = "/addquestion",method=RequestMethod.POST)
- @ResponseBody
- public ResponseBase addQuestion(
- @RequestBody Map<String,Object> params
- ) {
- String quizId = params.get("quizId").toString();
- Integer questionId = Integer.parseInt(params.get("questionId").toString());
- }
试试这么写2014年11月19日 10:46
-
你用的什么版本的spring,换之前的版本试试吧,3.2.1之后应该是做了异常处理的。或者换种接收参数的方式
2014年11月18日 09:19