Пост AJAX с jQuery изменением имени параметра массива - PullRequest
7 голосов
/ 04 мая 2011

Я делаю простую запись AJAX с использованием jQuery, прекрасно работает:

var parameters = {firstName: 'John', lastName: 'Smith'};
$.post('http://api.example.com/rest', parameters, function(data) {
  alert('Response: ' + data.someResult);
});

Однако, когда я добавляю массив к параметрам, например:

var parameters = {firstName: 'John', lastName: 'Smith', children: ['Susy', 'Billy']};

Тогдапроблема заключается в том, что имя параметра children меняется на children[] (на самом деле это URL, закодированный в children%5B%5D) при размещении на сервере.Я не могу изменить сервер для поиска параметров с именем children[], что мне делать?Как я могу POST несколько значений с именем children?Почему jQuery меняет имя моего параметра?

1 Ответ

6 голосов
/ 04 мая 2011

Полагаю, вам необходимо включить traditional кодирование параметров.

См. http://api.jquery.com/jQuery.ajax/ и http://api.jquery.com/jQuery.param

Поскольку $.post не имеет специальной опции длядля этого вам нужно либо вернуться к $.ajax, либо использовать глобальную настройку jQuery.ajaxSettings.traditional = true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...