JQuery 1.4.2 JSON формат нарушает то, что раньше работало в 1.3.2
Я только что обновил свой jQuery с 1.3.2 до 1.4.2, и я думаю, что это вызывает у меня некоторые проблемы. у меня есть $.post()
функция, которая вызывает метод контроллера и передает некоторые данные, которые я форматирую следующим образом:
$.post(url, { arrayParam: myArray, param2: false }, someCallback, 'html');
В Firebug POST говорит, что параметры в 1.3.2 выглядят так:
arrayParam: 100
arrayParam: 101 (etc..)
Но для 1.4.2 они выглядят так:
arrayParam[]: 100
Это ломает мой контроллер, который ожидает List<Int32>
за arrayParam
(и вызывает некоторые проблемы JSON вокруг кодовой базы). Есть ли способ обойти это без возврата к 1.3.2 или перепрограммирования всех моих контроллеров??
Спасибо
1 ответ
Начиная с jQuery 1.4, метод $.param() рекурсивно сериализует глубокие объекты для размещения современных языков сценариев и сред, таких как PHP и Ruby on Rails. Вы можете отключить эту функцию глобально, установив jQuery.ajaxSettings.traditional = true;
,
ajax-методы jQuery используют $.param() для передаваемых данных.
Смотрите jquery param для получения дополнительной информации.
Вот ваше исправление:
jQuery.ajaxSettings.traditional = true;