我需要将客户端html中的数据发送回spring控制器。 我有一个控制器,它生成一个Json数组,我在请求时通过ajax发送到html端。 这很好用。 问题是我需要将Json数组发送回另一个控制器以进行评估和更改。 如果我发布数据并分配原始类的类对象,我会得到错误"不好的要求"它没有用。 如果我在控制器中分配一个消耗帖子的对象。这样可行 但我得到一个我不知道如何访问的哈希映射。 我不能把它转移到另一个类,也不能访问它来使用它。 因为我是新手,所以有人可以给我一个如何消费帖子的建议 在接收控制器端。
由于
Khelvan。
控制器代码如下所述
获取控制器1
@RequestMapping("/Person")
@ResponseBody
public ArrayList<Person> ajax_Person_array()
{
ArrayList<Person> Dummy = new ArrayList<Person>();
for ( x=0; x < 5; x++ ){
Dummy.setName("Alfon");
Dummy.setID("5");
Dummy.setStree("Delta");
Dummy.setName("Neutral");
Person.add(Dummy);
}
return Dummy;
}
控制器2的帖子
@RequestMapping(value="/ajax", method=RequestMethod.POST, consumes = "application/json")
//public @ResponseBody String post( @RequestBody Object ajax_Person_array()) {
public @ResponseBody String post( @RequestBody ArrayList<Person> ajax_Person_array()) {
System.out.println("First TEST");
String Success = "OK";
return Success;
}
Html:获取ajax
var ajax_data;
$.ajax({
url: "http://localhost:8080/Person",
async: false,
dataType:'json',
cache: false,
success: function (data) {
ajax_data = data;
alert("success ");
},
error:function(){alert("something went wrong ");}
});
}
Html post ajax
$。AJAX({ url:&#34; http://localhost:8080/ajax&#34;, 键入:&#39; POST&#39;, dataType:&#39; text&#39;,
data: ajax_data,
// data: JSON.stringify(ajax_data),
contentType: 'application/json',
success: function(data) {
alert(data);
},
error:function(data,status,er) {
alert("error: "+data+" status: "+status+" er:"+er);
document.write(data);
}
});
答案 0 :(得分:0)
@RequestMapping (value="/ajax", method=RequestMethod.POST, consumes = "application/json")
public @ResponseBody JSONObject post( @RequestBody JSONObject person) {
//Pass data to a service to process the JSON
}
对于您的ajax请求,请勿将dataType设置为&#39; Text&#39;。将其设置为JSON
$.ajax({ url: "http://localhost:8080/ajax",
type: 'POST',
dataType: 'json',
data: JSON.stringify(ajax_data),
contentType: 'application/json',
success: function(data) {
alert(data);
},
error:function(data,status,er) {
alert("error: "+data+" status: "+status+" er:"+er);
document.write(data);
}
});