Как отправить массив параметров запроса на сервлет с помощью jQuery $.ajax?
Я хотел бы отправить массив JavaScript в сервлет с помощью jQuery $.ajax
.
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.
Как мне получить доступ к значениям?
Ответы
Ответ 1
Отправьте массив как значение объекта 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....
},
});
В сервлет вам необходимо суффицировать имя параметра запроса с помощью []
.
String[] myJsonData = request.getParameterValues("json[]");
jQuery добавляет их, чтобы быть дружелюбными к слабым типизированным языкам, таким как PHP.
Ответ 2
Вам нужно преобразовать массив в тип JSON, чтобы вместо [] ему нужно было прочитать
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....
}})
Ответ 3
Вам нужно разместить свой объект данных javascript следующим образом.
http://api.jquery.com/jQuery.post/
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});