如何使用jQuery发送请求参数数组到servlet $ .ajax?

我想用jQuery $.ajax发送JavaScript数组到servlet。

 var json=[1,2,3,4]; $.ajax({ url:"myUrl", type:"POST", dataType:'json', success:function(data){ // codes.... }, data:json }); 

当我使用

 request.getParameter("json"); request.getParameterValues("json"); 

它返回null。

我怎样才能访问这些值?

发送数组作为JS对象的值,所以你最终成为{json:[1,2,3,4]}

 var json=[1,2,3,4]; $.ajax({ url:"myUrl", type:"POST", dataType:'json', data: {json:json}, success:function(data){ // codes.... }, }); 

在servlet中,需要使用[]来后缀请求参数名称。

 String[] myJsonData = request.getParameterValues("json[]"); 

jQuery附加它们是为了对PHP等弱types语言友好。

您必须将您的数组转换为JSONtypes,而不是[]它需要阅读

  var array = [ 1, 2, 3, 4 ]; 

要做到这一点,你需要打电话

  var json = JSON.stringify(array) 

那么你可以将它传递给你的ajax调用

  $.ajax({ url:"myUrl", type:"POST", data: json, dataType:'json', success:function(data){ // codes.... }}) 

你需要发布你的JavaScript数据对象像这样..

http://api.jquery.com/jQuery.post/

 $.post("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); });