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

Что такое "традиционный стиль параметризации сериализации" в JQuery

Знаете ли вы, что такое "традиционный стиль параметризации сериализации" для jQuery.ajax(), как указано в http://api.jquery.com/jQuery.ajax/?

Можете ли вы дать некоторое представление?

Спасибо

4b9b3361

Ответ 1

Посмотрите документацию jQuery.param():

Как и в jQuery 1.4, метод $.param() сериализует глубокие объекты рекурсивно для размещения современных языков сценариев и фреймворков, таких как PHP и Ruby on Rails. Вы можете отключить эту функциональность глобально, установив jQuery.ajaxSettings.traditional = true;.

Учитывая

var p = {foo: [1,2,3], bar: 42};

настройка traditional - true генерирует

foo=1&foo=2&foo=3&bar=42

Пока, например, Python может обрабатывать эти параметры, т.е. Генерирует список для foo, PHP будет рассматривать только последний параметр foo.

Но теперь по умолчанию результат сериализации (на самом деле это кодирование URI)

foo[]=1&foo[]=2&foo[]=3&bar=42

который может быть лучше обработан, как уже упоминалось, PHP и RoR.


Или, может быть, еще более интересно это. Дано:

var p = {foo: {1: [3,4], 2:2,3:3}, bar: 42};

традиционный производит:

foo=[object Object]&bar=42

что явно не полезно по сравнению с "новым" способом:

foo[1][]=3&foo[1][]=4&foo[2]=2&foo[3]=3&bar=42