Следующий код работает для меня с использованием jQuery 1.2.6, но вызывает ошибку брокера в версии 1.4.
var items = new Array();
items[0] = "Item 1";
items[1] = "Item 2";
items[2] = "Item 3";
var dataToSend = {'_service' : myService, '_program' : myProgram, 'selections' : items} ;
$.ajax({
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {$('#results').html(request); } // End success
}); // End ajax method
Ошибка брокера, которую я получаю, указывает, что то, что передается в выборе, это "выборы [] '
ОШИБКА: (Недопустимый символ "[" в имени поля "выборы []". Этот символ недопустим в именах полей.)
Было ли изменение в том, как jQuery обрабатывает массивы при вызове ajax? или это неверный способ передать массив?
Любая помощь будет оценена.
EDIT: Ответ от @jvenema решил мою проблему. С помощью "традиционной" настройки вы можете заставить jQuery обрабатывать параметры, подобные предыдущей. Вот некоторые дополнительные ссылки, которые говорят об изменении jQuery.ajax(), jQuery.param() и сообщение в блоге jQuery 1.4 $.param demystified.
Либо общая формулировка
jQuery.ajaxSettings.traditional = true;
или в качестве дополнительной опции в вызове ajax
$.ajax({
traditional: true,
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {
$('#results').html(request);
} // End success
}); // End ajax method