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以来就存在。前面的行为就是您要寻找的
- 使用
- 自己编码并将字符串传递给
$。获取
- 调用
//多亏了@Barmar$.ajax(url,{traditional:true})
/=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"