JQuery / Spring:将json对象发布到spring控制器不起作用

时间:2012-05-17 09:25:42

标签: jquery ajax spring web

这是我的弹簧控制器

@RequestMapping(value = "/app/{appId}/save.html",method=RequestMethod.POST)
public @ResponseBody String myFunction 
     (@PathVariable("appId") String id, @RequestBody Map<String, String> data1) {
                return "hello";
   }

这是我的ajax请求

$.ajax({
                    type : 'POST',
                    url : '/app/${param.appID}/save.html',
                    data : JSON.stringify(myJsonData), 
                    dataType : "json",

                    success : function(data, textStatus,
                            xhr) {
                        var response = xhr.responseText;
                        if (response !== "hello") {
                            alert('sad');
                        } else {
                            alert('happy');
                        }
                    }
                });

问题是,这个请求永远不会到达控制器并被卡住。 如果我删除数据和数据1,一切正常。有些人可以帮助我解决我的错误。

更新:这是firebug所显示的错误

415不支持的媒体类型:服务器拒绝了此请求,因为请求实体的格式不受所请求方法所请求资源的支持()

这是我的json对象

myJsonData= {
                        "data1" : $("input[name=key1]:checked").val(),
                        "data2" : $("input[name=key2]:checked").val(),
                        "data3" : $("input[name=key3]:checked").val()
                };

2 个答案:

答案 0 :(得分:0)

JSON.stringify没有必要。

data : myJsonData,

就够了。

答案 1 :(得分:0)

尝试在consumes="application/json"

中明确设置@RequestMapping