У меня есть объект в Javascript, который я пытаюсь отправить AJAX POST в Скрипт PHP. Все работало в jQuery 1.4.1, но теперь в 1.4.4 или выше все пустые массивы или пустые объекты поступают в виде строки (0), что неверно.
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);
?>
ОТВЕТ:
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"
}
В версии 1.4.1 он просто НЕ отправлял ["один"] или ["два"], но теперь, в более новых версиях, тот факт, что он поступает в виде строки, отбрасывает все приложение. Могу ли я что-нибудь сделать, чтобы пустой массив ([]) поступал в PHP как пустой массив ([]) и то же самое с объектами JavaScript?