Следующий код работает для меня, используя 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
Ошибка посредника, которую я получаю, указывает, что то, что передается в выборках, это 'выборы []
ОШИБКА: (Недопустимый символ "[" в имени поля "selections []". Этот символ не допускается в именах полей.)
Произошло ли изменение вкак jQuery обрабатывает массивы в вызове ajax?или это был неправильный способ передачи массива?
Любая помощь будет признательна.
РЕДАКТИРОВАТЬ: Ответ от @jvenema решил мою проблему.С помощью «традиционной» настройки вы можете заставить jQuery обрабатывать параметры, как в предыдущей версии.Вот некоторые дополнительные ссылки, в которых рассказывается об изменении jQuery.ajax () , jQuery.param () и запись в блоге jQuery 1.4 $ .param demysified .
Либо общий оператор
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