/*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类中接收ajax-json请求数据。这是从spring mvc.Or中的ajax捕获一组数据的正确方法,需要其他注释来避免400错误!?
答案 0 :(得分:0)
如果指定
contentType: "application/json; charset=utf-8",
这意味着您期待JSON数据作为回报 - 如果它不是有效的JSON,那么它将转到错误块。
您可能正在返回一个字符串:
return new Status(0,e.getMessage().toString());
尝试省略contentType
行。同时发布浏览器控制台错误可能有助于我们更轻松地确定问题。
注意:如果您要指定传出数据类型,则dataType
设置。
答案 1 :(得分:0)
400 Bad Request
很少发生,因为无法将url
viz videoUpdate
映射到适当的映射。
这可能是因为您可能没有传递进行切入点所需的参数 我建议你检查你的代码的以下部分:
var savedata={
video_Title:videotitle,
video_duration:videoduration,
video_Url:videourl,
video_Description:videodescription
};
确保传递所需的参数。
答案 2 :(得分:0)
假设您正在点击的网址是正确的,您可以查看Video类的字段是否与您正在发布的JSON完全匹配