Подтвердить что ты не робот

Какая разница между .serialize() и .serializeArray()?

Я экспериментирую с отправкой формы в контроллер. В документации jQuery сказано, что .serializeArray() должен отправить массив json, а .serialize() должен создать строку запроса.

Однако, когда я пытаюсь это сделать и проверять в IE9 F12-mode, в обоих случаях это выглядит как строка запроса. Который когда-либо звоню, я делаю...

Чего мне не хватает?

4b9b3361

Ответ 1

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

Причиной доступности обеих версий является то, что serialize более удобно, когда вы просто хотите сделать HTTP-запрос (просто поместите результат в строку запроса), в то время как serializeArray более удобно, если вы хотите обработать результаты сами.

jQuery AJAX методы не заботятся, если вы даете им то или другое, потому что они обнаруживают тип параметра и преобразуют его в строку запроса, если он уже не один, поэтому по этой точке запрос делается вне наблюдателей. укажите исходный формат параметров.