jQuery 1.4. 4+ AJAX-запрос - отправить пустой массив или объект становится строкой

У меня есть объект в 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?

6
задан Michael Petrotta 15 March 2011 в 23:18
поделиться