serializeArray
создает массив (не «массив json» - нет такой вещи); вы можете проверить это самостоятельно с помощью console.log($("#myform").serializeArray())
. С другой стороны, serialize
создает строку запроса, которая должна быть частью HTTP-запроса. Оба представления эквивалентны в том смысле, что с использованием соответствующего кода вы можете конвертировать одно в другое без какой-либо двусмысленности.
Причина, по которой доступны обе версии, заключается в том, что serialize
более удобен, когда вы просто хотите сделать HTTP-запрос (просто поместите результат в строку запроса), в то время как serializeArray
более удобен, если вы хотите обработать результаты самостоятельно.
Методы jQuery AJAX не заботятся, если вы дадите им то или другое, потому что они обнаруживают тип параметра и преобразуют его в строку запроса, если он еще не один, поэтому по этой точке запрос делается вне наблюдателей не может определить, какой был исходный формат параметров.
взгляд на [это] [1] [1]: http://stackoverflow.com/questions/4235052/jquery-question-about-serializearray-and-serialize –
я действительно видел, что перед отправляя этот вопрос. Я все еще не понимаю! – kaze
Можете ли вы дать результат, который вы видите на консоли отладки? – Julien