$.post(
'/post.php',
{
array:[]
})
При этом, если массив не пустой, работает всё хорошо, но если пустой, на сервер приходит пустой $_POST, даже без ключа array. Т.е. не срабатывает даже isset($_POST['array']).
В чем ошибка, и как сделать без сериализации или лишних проверок перед отправкой?
Это нормальное поведение встроенного в jQuery метода serialize. Считается что передавать пустые поля - это лишнее. Просто сделайте проверку на бекенде.
kozebojka: на фронтенде. Если вы отправите форму саму по себе, без jQuery, то получите тот же результат. Так что просто считайте что пустой запрос, это тоже нормально.