jQuery';s.get()对arguments对象进行编码?

jQuery';s.get()对arguments对象进行编码?,jquery,Jquery,鉴于以下代码: requestRefresh("arg1", "arg2"); function requestRefresh ( listofnames ) { var args = { name: [], action: "ajax.refresh" }; for (var i = 0; i < arguments.length; ++i) {

鉴于以下代码:

requestRefresh("arg1", "arg2");

function requestRefresh ( listofnames ) {
        var args = {
                name:   [],
                action: "ajax.refresh"
        };
        for (var i = 0; i < arguments.length; ++i) {
                args.name.push(arguments[i]);           
        }
        jQuery.get(url, args).done(function ( results ) {
            ...
        });
});
但我希望在每个“名称”后面不带编码的“[]”:


有什么方法可以实现这一点吗?

此行为自1.4以来就存在。前面的行为就是您要寻找的

  • 使用
  • 自己编码并将字符串传递给
    $。获取
  • 调用
    $.ajax(url,{traditional:true})
    //多亏了@Barmar

/=1.4:
$.param({a:[2,3,4]});//“a[]=2&a[]=3&a[]=4”

您还可以调用
$.ajax
并使用
traditional:true,
选项。这样,您就不会全局更改设置,只针对该请求。@JohnHascall这是大多数脚本语言希望提交多个同名参数的方式。如果您不使用
[]
,它们只会将最后一个值提供给应用程序。是的,我最终将接收框架更改为接受
a[]=2&a[]=3&a[]=4
(以前只接受
a=2&a=3&a=4
a[0]=2&a[1]=3&a[2]=4
)。这似乎比告诉人们你需要在jQuery方面做一些有趣的事情要好得多。@JohnHascall是的,这种格式比
a=2&a=3
更受欢迎,我相信Java世界除外
url?name%5B%5D=arg1&name%5B%5D=arg2&action=ajax.refresh
url?name=arg1&name=arg2&action=ajax.refresh
// <=1.3.2:
$.param({ a: [ 2, 3, 4 ] }); // "a=2&a=3&a=4"
// >=1.4:
$.param({ a: [ 2, 3, 4 ] }); // "a[]=2&a[]=3&a[]=4"