これは私のスプリングコントローラーです
@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');
}
}
});
問題は、このリクエストがコントローラーに到達せず、スタックしてしまうことです。data と data1 を削除すると、問題なく動作します。私が間違っていることを手伝ってくれる人もいます。
更新:firebugが示すエラーは次のとおりです
415 Unsupported Media Type : リクエスト エンティティが、リクエストされたメソッドのリクエストされたリソースによってサポートされていない形式であるため、サーバーはこのリクエストを拒否しました ()
ここに私のjsonオブジェクトがあります
myJsonData= {
"data1" : $("input[name=key1]:checked").val(),
"data2" : $("input[name=key2]:checked").val(),
"data3" : $("input[name=key3]:checked").val()
};