Tengo un objeto en Javascript que estoy tratando de AJAX POST a un script de PHP. Todo funcionó en jQuery 1.4.1 pero ahora en 1.4.4 o superior, todas las matrices vacías u objetos vacíos llegan como una cadena (0) que es incorrecta.jQuery 1.4.4+ solicitud de AJAX - publicar matriz vacía u objeto se convierte en cadena
JS:
$(document).ready(function() {
var obj = {};
obj.one = [];
obj.two = {};
obj.three = [];
obj.three.push('one');
obj.three.push('two');
obj.three.push('three');
obj.four = "onetwothree";
$.ajax({
type: 'POST',
url: 'ajax.php',
data: obj,
success: function(data) {
alert(data);
},
});
});
PHP:
<?php
var_dump($_POST);
?>
RESPUESTA:
array(4) {
["one"]=> string(0) ""
["two"]=> string(0) ""
["three"]=> array(3) {
[0]=> string(3) "one"
[1]=> string(3) "two"
[2]=> string(5) "three"
}
["four"]=> string(11) "onetwothree"
}
En la versión 1.4.1 sería simplemente no envía ["uno"] o ["dos"], pero ahora en las versiones más nuevas, el hecho de que llegue como una cadena arroja toda la aplicación. ¿Hay algo que pueda hacer para que una matriz vacía ([]) llegue a PHP como una matriz vacía ([]) y lo mismo con objetos de JavaScript?
Hola. ¿Encontraste alguna solución a este problema? También estoy interesado en esto. Antes de ver su publicación, ya publiqué [esto] (http://stackoverflow.com/questions/9179473/why-jquery-ajax-does-not-serialize-my-object). –