【发布时间】:2016-01-14 10:41:32
【问题描述】:
我必须在 JQuery 中创建一个带有 AJAX 请求的 POST,我必须在其中传递一个可以创建的对象数组:
var actor=new Array();
for(var i=1;i<=incr;i++)
{
actor.push({"name": document.getElementById("idAN"+i).value,
"surname": document.getElementById("idAS"+i).value,
"dateborn": document.getElementById("idAB"+i).value,
"gender": document.getElementById("idAG"+i).value,
"movie": datas});
alert("actorX: "+actor[i-1].surname);
}
$.ajax({
method:'POST',
dataType: 'json',
data:{ actors: actor },
url:'http://localhost:8080/movies/actors',
success: function (rest) {
alert("aggiunto attore");
},
error: function(rest){
alert("non aggiunto attore");
}
});
我使用此 Java 方法接收数据,但这不起作用。谁能帮帮我?
@RequestMapping(value = "movies/actors", method = RequestMethod.POST)
public ArrayList<Actor> addActors(@RequestBody Actor[] actors) {...}
经过三天的工作,我在 cmets 的帮助下解决了这个问题。这是java中方法的结果:
@CrossOrigin(origins = "http://localhost:8080")
@RequestMapping(value = "movies/actors", method = RequestMethod.POST,headers="Accept=application/json")
public @ResponseBody ArrayList<Actor> add (@RequestBody Actor[] actors) {
//Actor[] actors = actobj.getAllActors();
ArrayList<Actor> json = new ArrayList<Actor>();
for(Actor A : actors){
System.out.println("Arrivo");
serv.addActor(new Actor(A.getName(),A.getSurname(),A.getBorn(),A.getGender(),A.getMovie()));
System.out.println("nomeAttore"+A.getName());
json.add(A);
}
return json;
}
这是发布请求:
$.ajax({
method:'POST',
dataType: 'json',
data:JSON.stringify(actor),
contentType: "application/json; charset=utf-8",
url:'http://localhost:8080/movies/actors',
success: function (rest) {
alert("aggiunto attore");
},
error: function(rest){
alert("non aggiunto attore");
}
});
特别是我把查询sql中的一个参数值从databorn改成了born,因为我有getBorn和setBorn方法,名字必须是eguals;而eguals必须是javascript中数组actor中对象参数的名称:born
【问题讨论】:
标签: javascript java ajax spring post