El siguiente código funciona para mí usando jQuery 1.2.6 pero causa un error de corredor en 1.4.Pasar matrices en la llamada ajax usando jQuery 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
El error corredor de recibo indica que lo que se está pasando en la selección es 'selecciones []'
ERROR:. (carácter no válido "[" en el nombre del campo "selecciones []" Este personaje no está permitido en los nombres de campo.)
¿Hubo algún cambio en la forma en que jQuery maneja las matrices en una llamada ajax? o era esta una forma incorrecta de pasar una matriz?
Cualquier ayuda sería apreciada.
EDITAR: La respuesta de @jvenema resolvió mi problema. Con la configuración "tradicional" puede hacer que jQuery maneje los parámetros como la versión anterior. Aquí hay algunos enlaces adicionales que hablan sobre el cambio jQuery.ajax(), jQuery.param() y una publicación de blog jQuery 1.4 $.param demystified.
Cualquiera de una declaración general de
jQuery.ajaxSettings.traditional = true;
o como una opción adicional en la llamada ajax
$.ajax({
traditional: true,
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {
$('#results').html(request);
} // End success
}); // End ajax method
Además, debe mencionar la forma de hacerlo para una sola llamada Ajax: agregar tradicional: verdadero al objeto $ .Ajax. –
¿Hay alguna forma de obtener este resultado con 'getJSON()' o debo usar 'ajax()'? – hippietrail