使用jQuery更改数组参数名称的AJAX帖子

时间:2011-05-04 18:17:42

标签: ajax jquery post parameters

我正在使用jQuery做一个简单的AJAX帖子,效果很好:

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']};

然后问题是,当POST到服务器时,参数名称children变为children[](实际上URL编码为children%5B%5D)。我无法更改服务器以查找名为children[]的参数,那么我该怎么办?如何使用名称children发布多个值?为什么jQuery会更改我的参数名称?

1 个答案:

答案 0 :(得分:6)

我认为您需要启用traditional参数编码。

请参阅http://api.jquery.com/jQuery.ajax/http://api.jquery.com/jQuery.param

由于$.post没有针对此的具体选项,您需要恢复为$.ajax或使用全局设置jQuery.ajaxSettings.traditional = true