spring mvc 400 Required String parameter 'quizId' is not present 前端参数找不到

spring mvc 400 Required String parameter 'quizId' is not present 前端参数找不到5

如下图所展示, 前端发起一个异步请求,传递了一个json对象

Js代码   收藏代码
  1. $scope.addQuestionToTest = function(qid){  
  2.          var sendData={"quizId":$scope.tid,"questionId":qid};  
  3.          $http({  
  4.                 url: WEBROOT+"/test/addquestion",  
  5.                 method: 'POST',  
  6.                 headers: {  
  7.                     "Authorization": Data.token()  
  8.                 },  
  9.                 data: sendData  
  10.             }).success(function (data) {...  

 
firebug中的前端数据如下 

头信息




 
 
以下服务端的代码

Java代码   收藏代码
  1. @RequestMapping(value = "/addquestion",method=RequestMethod.POST)    
  2. @ResponseBody    
  3. public ResponseBase addQuestion(    
  4.         @RequestParam(value="quizId", required=true)   String quizId,    
  5.         @RequestParam(value="questionId", required=true)   Integer questionId    
  6.         ) {    

  
spring mvc中报错400, debug跟到spring web的DispatchServlet,发现抛出的具体异常是请求的quizId找不到

Java代码   收藏代码
  1. org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'quizId' is not present    
 

奇了个怪了,为什么会找不到前端的参数,明明再firebug中都有的,请各位指教

 

 
2014年11月17日 23:46

6个答案按时间排序按投票排序

0 0

采纳的答案

Java代码   收藏代码
  1. @RequestMapping(value = "/addquestion",method=RequestMethod.POST)      
  2. @ResponseBody      
  3. public ResponseBase addQuestion(      
  4.         @RequestBody Map<String,Object> params      
  5.         ) {    
  6.             String quizId = params.get("quizId").toString();  
  7.             Integer questionId = Integer.parseInt(params.get("questionId").toString());  
  8.         }  


试试这么写

2014年11月19日 10:46
0 0

如果传的是json 头信息中的 content-type 改成application/json

2014年11月20日 11:21
0 0

基本类型没法赋值

2014年11月19日 14:06
0 0

PLZ use @RequestBody, not @RequestParam

2014年11月18日 16:16
0 0

参数名换成小写的,试试。如quizId 换成quizid

2014年11月18日 14:24
0 0

你用的什么版本的spring,换之前的版本试试吧,3.2.1之后应该是做了异常处理的。或者换种接收参数的方式

2014年11月18日 09:19
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值