Ответ 1
serializeArray
создает массив ( не a "json array" - такой вещи нет); вы можете проверить это самостоятельно с помощью console.log($("#myform").serializeArray())
. С другой стороны, serialize
создает строку запроса, которая должна быть частью HTTP-запроса. Оба представления эквивалентны в том смысле, что с использованием соответствующего кода вы можете конвертировать одно в другое без какой-либо двусмысленности.
Причиной доступности обеих версий является то, что serialize
более удобно, когда вы просто хотите сделать HTTP-запрос (просто поместите результат в строку запроса), в то время как serializeArray
более удобно, если вы хотите обработать результаты сами.
jQuery AJAX методы не заботятся, если вы даете им то или другое, потому что они обнаруживают тип параметра и преобразуют его в строку запроса, если он уже не один, поэтому по этой точке запрос делается вне наблюдателей. укажите исходный формат параметров.