400错误请求!!当我尝试在spring mvc中向Servlet发送ajax请求时

时间:2015-01-05 09:18:33

标签: java ajax spring servlets

/*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错误!?

3 个答案:

答案 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完全匹配

相关问题