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;
Другие вопросы по тегам