2015-01-05 74 views
-1
/*ajax request to servlet to perform update operation*/ 
var savedata={ 
       video_Title:videotitle, 
       video_duration:videoduration, 
       video_Url:videourl, 
       video_Description:videodescription 

    }; 
     $.ajax({ 
      url:'videoUpdate', 
      type:'POST', 
      cache:false, 
      data: savedata, 
      contentType: "application/json; charset=utf-8", 
      success: function(response) { 
       alert("Updated Successfully"); 
     }, 
     error:function() 
     { 
     alert("oops sorry something went wrong. we apologize for the inconvenience"); 
     } 
     }); 



/*Controller Class*/ 

@RequestMapping(value ="videoUpdate",method = RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE) 
    public @ResponseBody Status updateVideo(@RequestBody Video video) { 

     try { 

      System.out.println("update servlet"); 
      dataServices.updateVideo(video); 
      return new Status(1,"video updated Successfully"); 
     } 
     catch (Exception e) { 
     return new Status(0,e.getMessage().toString()); 
     } 
} 

我的问题是如何收到我的servlet class.Is Ajax的JSON请求的数据,这是赶上了一组数据从阿贾克斯Spring MVC中的正确方法或者需要其他注释以避免400错误!?400坏请求!当我尝试发送Ajax请求在Spring MVC中,以Servlet的

+3

登录你的错误的JSON精确匹配,你会得到什么错误实际信息。 – Kayaman

+0

@codeseeker当您使用'@RequestBody Video video'时,您发送的数据是否与模型类绑定?似乎更多的请求数据不匹配? –

回答

0

400 Bad Request很少发生,因为urlvideoUpdate无法映射到适当的映射。

这可能是因为你可能不会传递所需的参数来削减点数。
我建议你检查下你的代码的一部分:

var savedata={ 
       video_Title:videotitle, 
       video_duration:videoduration, 
       video_Url:videourl, 
       video_Description:videodescription 

    }; 

并确保您传递所需的参数。

+0

感谢您的建议@Darshan Lila。 – Binu

0

如果指定

contentType: "application/json; charset=utf-8", 

,这意味着你有所回报,JSON数据 - 如果它不是有效的JSON然后它向差错块。

你可能会返回一个字符串:

return new Status(0,e.getMessage().toString()); 

尽量省略contentType线。同时发布浏览器控制台错误可能帮助我们更轻松地确定问题

注意:如果您要指定传出数据类型,则有dataType设置。

+0

感谢您的建议@ Dropout.The问题是Video类的字段不完全匹配的JSON。 – Binu

0

假设你打的网址是正确的,你可以看看是否有视频类的字段您发布

+0

明白了..谢谢你@morsor – Binu